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
-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).
It is possible that there is no difference - depends on the OS native format and how portable you want the debugging info to be. See GCC manual Debugging Options.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With