GDB Warnung: Ladebarer Abschnitt wurde nicht in dem vom DSO bereitgestellten Symbol-Dateisystem bei 0x7ffff7ffd000 gefunden

8
%Vor%

Ich habe ein einfaches Programm geschrieben, das einen String druckt und zurückgibt. Ich konnte es direkt ausführen, indem ich " ./ a.out " eintippte. Aber wenn ich es in gdb starte, passiert der oben erwähnte Fehler. Ich habe versucht, den Code mit dem Flag " -g " zu kompilieren und ohne es zu verwenden. Beide Male gab es das gleiche Ergebnis. Kann mir jemand bei dieser Frage helfen?

    
Abijith Kp 31.08.2013, 06:29
quelle

2 Antworten

3

Diese Nachricht,

%Vor%

SO bei 0x7ffff7ffd000

ist eine Warnung, die nicht verhindert, dass GCC a.out ausführt; zumindest sollte es nicht.

Es heißt, dass es ein dynamisch geladenes Objekt gibt, das von a.out verwendet wird, denen Symbole fehlen. Nichts über a.out selbst.

Sie können versuchen, a.out als statische ausführbare Datei zu erstellen. so:

%Vor%

Fügen Sie natürlich weitere benötigte Compiler-Argumente hinzu.

Als statische ausführbare Datei erhalten Sie diese Warnung nicht von GCC. Diese Symbole mögen immer noch fehlen, aber es sollte die Ausführung des Programms nicht beeinflussen.

    
ash 31.08.2013 20:16
quelle
2

Es scheint, dass dies ein Fehler in glibc oder gdb ist (je nachdem, wo Sie die Schuld haben wollen). Es ist scheinbar harmlos - gdb wird gut funktionieren.

Es wird durch einige Magie verursacht, die der Linux-Kernel bei den ausführbaren Binärdateien ausführt. Für Details siehe Debian-Fehlerbericht 738702 und das Original gdb Fehlerbericht 13097 .

Es gibt einen Patch, um diesen Fehler zu beheben, den Debian kürzlich angewendet hat, so dass das Problem mit GDB 7.7.1 auf Debian nicht mehr auftritt.

    
sleske 05.10.2014 12:40
quelle

Tags und Links