Warum erhalte ich in GDB die Meldung „Single-stepping until exit . . . which has no line number information“?

Lesezeit: 3 Minuten

Benutzeravatar von Steven Oxley
Steven Oxley

Ich habe mein C-Programm mit kompiliert gcc 4.4.1 unter Verwendung der Flagge -gaber wenn ich versuche, durch eine meiner Funktionen zu gehen gdb-Version 7.0bekomme ich die Meldung:

"Single stepping until exit from function _DictionaryTree_getNodeList, 
which has no line number information."

Kann mir jemand sagen warum das passiert?

Nur raten, aber ist _DictionaryTree_getNodeList in einer anderen Datei, die nicht mit -g kompiliert wurde?

  • Ja, ich habe es herausgefunden, bevor ich Ihre Antwort überhaupt gelesen habe. Gut geraten 😉

    – Steven Oxley

    31. Januar 2010 um 2:06 Uhr

  • Wenn Sie mehrere Dateien kompilieren, ist es besser, ein Makefile zu verwenden und -ggdb in den gcc-Optionsflags hinzuzufügen.

    – manav mn

    31. Januar 2010 um 9:07 Uhr

  • @Manav MN ja, das habe ich, aber ich habe zwei verschiedene Befehle – einen zum Kompilieren und einen zum Verknüpfen, und ich habe vergessen, das Flag zu dem zum Kompilieren hinzuzufügen (was eigentlich das einzige ist, wofür ich es brauchte, denke ich ).

    – Steven Oxley

    31. Januar 2010 um 23:54 Uhr

Ich hatte das gleiche Problem, aber in meinem Fall das Hinzufügen -g zum Compiler war nicht genug, also habe ich verwendet -ggdb wie von Manav vorgeschlagen.

  • Ich habe fast den gesamten Code aus meiner Hauptdatei auskommentiert. Nach der letzten Zeile in main ging gdb zur ersten Zeile von main und erhielt dann diese seltsame Meldung. Ich habe es mit diesem CXXFLAG=”-ggdb -O0″ versucht, habe immer noch die gleiche Fehlermeldung erhalten. Versuchte gdb gcc 7.3 und 8.2 beide bekamen das gleiche Problem.

    – Kemin Zhou

    22. Dezember 2018 um 18:30 Uhr


In meinem Fall war das Problem Versionsversatz zwischen gcc und gdb.

Nachdem ich hier von der Suche gelandet bin und keine dieser Antworten zu meiner Situation passt, habe ich herausgefunden, dass (aufgrund von Aliasnamen / Symlinks / Makefile / Umgebungsvariablen) Ich habe versehentlich einen neueren GCC (4.8.x) und einen älteren GDB (7.2) verwendet. Ein Upgrade auf eine neuere Version von GDB (7.8) hat das Problem behoben. Aus irgendeinem Grund hat die Verwendung eines neueren GCC und einer älteren GDB nicht funktioniert.

  • … aber (erst) jetzt sehe ich, dass frühere Antworten auf andere fast identische Fragen diese Antwort haben – zB dies und das. Letzteres enthält Informationen über warum (DWARF-Inkompatibilität). Upvotes rundherum!

    – hoc_age

    1. Juni 2015 um 10:22 Uhr


Benutzeravatar von user3916997
Benutzer3916997

Ich hatte diese Fehlermeldung auch, aber die Ursache meines Problems war eine andere. Wenn jemand immer noch Probleme hat, stellen Sie sicher, dass Sie es haben #include <stdio.h> in Ihrer Datei, mit den entsprechenden Klammern drumherum stdio.h (Die Textnachricht würde nicht angezeigt, wenn ich sie in der Nähe hätte stdio.h).

Ich hatte das gleiche Problem, als ich eine Datei mit der Option -g und ohne die Option -g kompilierte. Für eine der Dateien zeigte die gdb die Zeilennummer ohne Probleme (selbst wenn sie ohne die Option -g kompiliert wurde). Und für die andere Datei musste ich ausdrücklich das Flag -g erwähnen …

Irgendwelche Ideen, ob die Quelldatei zur Laufzeit in GDB mit Querverweisen geladen werden könnte, wären eine gute Lösung … durch Zuordnen der Zeilen zu den Adressen: D.

Benutzeravatar von Hans
Hans

Ich hatte dieses Problem, weil ich eine gemeinsam genutzte Bibliothek debuggte, ohne LD_LIBRARY_PATH auf den richtigen Speicherort mit Debug-Endzuständen zu verweisen.

Sie können verwenden

export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH

Hoffentlich ist dies für jemanden hilfreich

Benutzeravatar von richar8086
richar8086

Ich hatte die gleichen Probleme, obwohl ich bereits kompilierte -g2. Ändern Sie es zu -g3 hat es geschafft.

1407870cookie-checkWarum erhalte ich in GDB die Meldung „Single-stepping until exit . . . which has no line number information“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy