GDB Warnung: Belastbar Abschnitt nicht gefunden in der zusätzlichen symbol-file-system geliefert DSO bei 0x7ffff7ffd000
abijith bufferOverFlow $ gdb a.out
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/abijith/Project/Security/bufferOverFlow/a.out...done
(gdb) r
Starting program: /home/abijith/Projec2qt/Security/bufferOverFlow/a.out
warning: no loadable sections found in added symbol-file system-supplied
SO at 0x7ffff7ffd000
Schrieb ich ein einfaches Programm, das druckt einen string und gibt. Ich war in der Lage, um ihn auszuführen, direkt, durch die Eingabe von "./ein.aus". Aber wenn ich es in der gdb die oben genannten Fehler passiert. Ich habe versucht, kompilieren Sie den code mit der "-g" - flag und ohne es zu benutzen. Beide mal gab es das gleiche Ergebnis. Kann jemand mir mit diesem Problem helfen??
- was die anderen Parameter hast du übergeben
gcc
? können Sie nach dem vollständigen Befehl, den Sie zum kompilieren und verknüpfen? - Ich habe versucht, diese Kommandos: gcc -g-test.c gcc test.c
- sind Sie mit einem alten kernel? bugzilla.redhat.com/show_bug.cgi?id=312011
- "Kann mir jemand helfen mit diesem Problem?" Sie scheinen nicht zu haben ein Problem (außer für eine Warnung, die ignoriert werden können). Funktioniert das Programm nicht drucken die erwartete Zeichenfolge und Ausfahrt?
- mein problem ist, dass ich nicht ausführen, das Programm in gdb
- Ja, Sie können. Sie laufen Sie. Die Frage ist: ist der Anfang und hängen, oder tut es nicht auch starten? Sie sollten in der Lage sein, zwischen den beiden zu unterscheiden durch den Blick auf
ps
Ausgabe. Sobald Sie das tun, aktualisieren Sie Ihre Frage zu klären, was da eigentlich passiert. - Es würde helfen, zu sehen, den code, der ausgeführt wird. Es sieht, von dem, was gepostet wurde, dass das Programm immer ausgeführt. Tun Sie nur nicht sehen, das erwartete Ausgabe? Oder, macht gdb nur "sitzen" auf der Suche aufgehängt? Etwas anderes?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachricht,
ALSO bei 0x7ffff7ffd000
ist eine Warnung, dass nicht verhindern, dass GCC ausgeführt
a.out
; zumindest sollte es nicht.Es ist zu sagen, dass es ein dynamisch geladenes Objekt verwendet
a.out
ist, dass Symbole fehlen. Nichts über eine.aus sich selbst.Können Sie versuchen, zu bauen.als statische ausführbare; wie diese:
Offensichtlich, fügen Sie alle anderen compiler-Argumente benötigt.
Als statische ausführbare Datei, die Sie nicht bekommen, dass die Warnung von GCC. Diese Symbole können noch fehlen, aber es sollte keine Auswirkungen auf die Ausführung des Programms.
-static
. Mein code-Beispiel ist zu einfach um es zu zeigen hierEs scheint dies ein bug in der glibc oder gdb (je nachdem, wo Sie wollen, um die Schuld). Es ist scheinbar so harmlos - gdb funktioniert.
Ist es, bedingt durch einige Magie, der Linux-kernel führt auf Binärdateien es läuft. Für details, siehe Debian bug report 738702 und die original gdb bug-Bericht 13097.
Gibt es einen patch um dies zu beheben, durch welches Debian-angewendet vor kurzem, also das problem tritt nicht mehr mit GDB 7.7.1 auf Debian.