2016-10-24 3 views
0

Ich arbeite unter Linux, es scheint mir, dass die Wirkung von "-g" und "-ggdb" keinen großen Unterschied macht. Ich finde nur die Verwendung von "-ggdb" wird binär einige Bytes größer erzeugen.gcc: Was ist der Unterschied zwischen "-g" und "-ggdb"?

Was ist der Hauptunterschied, dass gdb eine "-g" -Option und eine andere "-ggdb" -Option haben sollte?

Danke.

Antwort

2

Das kompilierte Programm sollte irgendwo gespeichert werden, für die Debugger (GDB hier), um es zu untersuchen und zu folgen.

Dies wird technisch als "Debugging-Datenformat" bezeichnet.

Einige universaslly akzeptiert Debug-Datenformate sind (es gibt einige weitere):

COFF - Common Object File Format - auf UNIX-ähnlichen Systemen.

PE/COFF - Portable Executable - ziemlich berühmt auf Windows, in der Regel verwendet Dotnet es.

DWARF - beliebt unter UNIX wie Systeme.

etc ..

Die GDB Optionen, die Sie in Ihrer Frage gestellt werden, um zu erzeugen, diese Debug-Datenformaten zusammen.

Basierend auf Dokumentation der funktionale Unterschied ist: Option "g" bietet die Debugging-Daten im systemeigenen Format. Option "-ggdb" ist Bit reich und teuer. stellt die Debugging-Daten im ausdrucksstärksten verfügbaren Format zur Verfügung.

Verwandte Themen