[Developers] debugging issues; -g is now useless with gdb

John Sibert sibert at hawaii.edu
Sat Feb 22 18:21:38 PST 2014


Starting with gcc-4.8 (or perhaps gcc-4.7) the compiler does not 
generate debugging information that is completely compatible with gdb. 
As a result the message "No symbol 'foo' in current context." is emitted 
every time an attempt is made to print or display a variable. Searching 
on the message yields a lot of useless advice about suppressing 
optimization. While is this advice is more or less correct, it does not 
eliminate the message or permit examining a variable. After a lot of 
further searching on stackoverflow, the solution is apparently to 
replace -g or -ggdb with "-g -gdwarf-2". Further farting around will 
reveal whether both -g and -gdwarf-2 are necessary. (Reverting to 
gcc-4.6.3 also solves the problem, but seems dumb.)

The ADMB make scripts for gcc use -ggdb and will not produce the desired 
result.

Also, IMHO, there is no point in compiling with both the OPT_LIB macro 
and the debug flags. It won't tell you where you walked out of an array 
in the optimized libraries. If you want to debug something use the safe 
libraries.

John

-- 
John Sibert
Emeritus Researcher, SOEST
University of Hawaii at Manoa
Honolulu HI (GMT-10)
808-294-3842

Visit the ADMB project http://admb-project.org/



More information about the Developers mailing list