Q1 Which is the best setting to use with gdb (under linux)? It depends on the task. Q2 Is there anyway to decrease the bloat? You can always use a lower debugging level, but then you lose some information. It is always possible to debug programs just by examining the assembler output as well. Q3 Do we need to say -g3 -ggdb3 or is -ggdb3 sufficient? -ggdb produces debuging information only usable by gdb, while -g produces whatever the native system uses.