This is the mail archive of the
mailing list for the GDB project.
Gcc options for improving debugging?
- From: Alex Bennee <kernel-hacker at bennee dot com>
- To: gdb at sources dot redhat dot com
- Date: Wed, 19 Jul 2006 12:32:58 +0100
- Subject: Gcc options for improving debugging?
- Reply-to: kernel-hacker at bennee dot com
By default we build our software with -O3 which brings in a host of
optimisations which make following code in GDB a pain. Artifacts I have
to deal with include:
* this=Variable "this" is not available and friends
* funky execution order when tracing
* Compressed backtraces due to inlineing
Now I have tackled this one way by introducing a -O0 variant of our
build for debugging. However it's becoming more tricky to compile with
low optimisation levels when we have some quite complex inline assembler
that needs a certain level of optimisation to be able to derive
constants from C++ functions.
An alternate approach is to compile with -O3 but turn off specific
optimisations which make life tricky for gdb. So far I have:
* -ggdb3 (obviously)
* -fno-omit-frame-pointer (seems to help with finding some variables)
What else would you suggest? Would this be worth adding to section 4.1
of the manual "Compiling for debugging".
Alex, homepage: http://www.bennee.com/~alex/
Hardware, n.: The parts of a computer system that can be kicked.