Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

gcc

gdb

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

like image 295
Johan Avatar asked Mar 21 '09 08:03

Johan


2 Answers

-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).

like image 50
mrz Avatar answered Nov 17 '22 11:11

mrz


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.

like image 43
luapyad Avatar answered Nov 17 '22 11:11

luapyad