What is the difference between gcc -ggdb and gcc -g

Johan picture Johan · Mar 21, 2009 · Viewed 54.1k times · Source

When I use gcc to compile C programs I usually use -g to get some debug information into the elf file so that gdb can help me if needed.

However, I noticed that some programs use -ggdb, since it's supposed to make the debug info more gdb friendly.

How do they differ and which is recommended to use?


Note: A link to the options for Debugging Your Program or GCC, http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

Answer

mrz picture mrz · Feb 11, 2013

-g and -ggdb are similar with some slight differences, I read this here:

-g produces debugging information in the OS¹s native format (stabs, COFF, XCOFF, or DWARF 2).

-ggdb produces debugging information specifically intended for gdb.

-ggdb3 produces extra debugging information, for example: including macro definitions.

-ggdb by itself without specifying the level defaults to -ggdb2 (i.e., gdb for level 2).