[En-Nut-Discussion] GCC 4.8, -Og and -g3

bon at elektron.ikp.physik.tu-darmstadt.de bon at elektron.ikp.physik.tu-darmstadt.de
Fri Jan 17 15:06:52 CET 2014


why do we use -gdwarf-2 in Makedefs.xxxdbg? With -g3 instead of dwarf, gdb
knows about all defined structures an so even in main "p *USART1" prints the
content of the defined USART1 registers. With -gdwarf-2 or even -gdwarf-4,
these definitions are not known to gdb and I had to look up the address of
USART1 in the manual and use "p *(USART_TypeDef*)<address>.

Otherwise gcc-4.8 knows about a -Og option. To quote:
    Optimize debugging experience. -Og enables optimizations that do 
    not interfere with debugging. It should be the optimization level
    of choice for the standard edit-compile-debug cycle, offering a
    reasonable level of optimization while maintaining fast compilation
    and a good debugging experience.

So I think it is the optimize level of choice for debugging. However gcc
before gcc-4.8 chokes on that option. On Linux I can define a GCC_VERSION
variable with a shell call like
arm-none-eabi-gcc -dumpversion | cut -b 1,3,5
and use -O0 if GCC_VERSION < 480 or -Og else. But I doubt this solution is
portable. Any ideas for a portable solution.

Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

More information about the En-Nut-Discussion mailing list