Wenn ich gcc zum Kompilieren von C-Programmen verwende, verwende ich normalerweise -g
einige Debug-Informationen in die elf-Datei, damit gdb mir bei Bedarf helfen kann.
Ich bemerkte jedoch, dass einige Programme verwenden -ggdb
, da dies die Debug-Informationen gdb-freundlicher machen soll.
Wie unterscheiden sie sich und welche wird empfohlen?
Hinweis: Ein Link zu den Optionen zum Debuggen Ihres Programms oder GCC unter http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options
-g
und-ggdb
sind ähnlich mit einigen kleinen Unterschieden, ich lese dies hier :quelle
Ich habe mindestens ein Beispiel, in dem -ggdb für mich besser funktioniert hat als eine andere Debug-Option, die wir verwendet haben:
Hinweis: Dies geschieht nur bei x86-64-Boxen und verschwindet beim Kompilieren mit -ggdb. Neuere Versionen des Debuggers funktionieren jedoch auch mit -gstabs +
quelle
Eine Sache ist, dass "-g" portabel ist (z. B. in Makefiles, die auf Nicht-GNU-Plattformen ausgeführt werden sollen). Ich hatte kürzlich ein Portabilitätsproblem in Bezug auf -g vs. -ggdb auf einem AIX-Computer. Deshalb spreche ich es an.
Keine Ahnung, was -ggdb zur Benutzerfreundlichkeit beiträgt.
quelle
Dies ist die offizielle Erklärung: http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options
Nur wenige harte Fakten, aber trotzdem interessant.
quelle