Under some conditions, gdb 6.8.50.20081120 backtrace crashes. See valgrind output below. I think the problem in cplus_demangle_print_callback on some template methods (for instance boost bind calls)

The solution is installing gdb-6.8.50.20090818-16.1.i586.rpm (from channel http://download.opensuse.org/reposit...l:/gcc/openSUS E_11.1)




#3 0x080b313d in pal::sync::SafeThread::svcProtected (this=0x812a830)
at /home/dani/svn/common/src/sync/SafeThread.cpp:340
==23157==
==23157== Conditional jump or move depends on uninitialised value(s)
==23157== at 0x8376773: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8377816: cplus_demangle_print_callback (in /usr/bin/gdb)
==23157== by 0x83778AA: cplus_demangle_print (in /usr/bin/gdb)
==23157== by 0x824C37C: cp_comp_to_string (in /usr/bin/gdb)
==23157== by 0x823996C: cp_remove_params (in /usr/bin/gdb)
==23157== by 0x81A2114: print_frame_info (in /usr/bin/gdb)
==23157== by 0x81A2281: (within /usr/bin/gdb)
==23157== by 0x81A4FFA: catch_errors (in /usr/bin/gdb)
==23157== by 0x81A0EDC: (within /usr/bin/gdb)
==23157==
==23157== Use of uninitialised value of size 4
==23157== at 0x8376798: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8377816: cplus_demangle_print_callback (in /usr/bin/gdb)
==23157== by 0x83778AA: cplus_demangle_print (in /usr/bin/gdb)
==23157== by 0x824C37C: cp_comp_to_string (in /usr/bin/gdb)
==23157== by 0x823996C: cp_remove_params (in /usr/bin/gdb)
==23157== by 0x81A2114: print_frame_info (in /usr/bin/gdb)
==23157== by 0x81A2281: (within /usr/bin/gdb)
==23157== by 0x81A4FFA: catch_errors (in /usr/bin/gdb)
==23157== by 0x81A0EDC: (within /usr/bin/gdb)
==23157==
==23157== Conditional jump or move depends on uninitialised value(s)
==23157== at 0x8375F43: (within /usr/bin/gdb)
==23157== by 0x8376828: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8376812: (within /usr/bin/gdb)
==23157== by 0x8377816: cplus_demangle_print_callback (in /usr/bin/gdb)
==23157== by 0x83778AA: cplus_demangle_print (in /usr/bin/gdb)
==23157== by 0x824C37C: cp_comp_to_string (in /usr/bin/gdb)
==23157== by 0x823996C: cp_remove_params (in /usr/bin/gdb)
==23157== by 0x81A2114: print_frame_info (in /usr/bin/gdb)
==23157== by 0x81A2281: (within /usr/bin/gdb)
==23157== by 0x81A4FFA: catch_errors (in /usr/bin/gdb)
#4 0x080b540c in boost::_mfi::mf0<int, pal::sync::SafeThread>:: (this=0xb53b6234, p=0x812a830)
at /opt/boost/include/boost-1_38/boost/bind/mem_fn_template.hpp:49
==23157== Stack overflow in thread 1: can't grow stack to 0xBE7A7FFC
==23157==
==23157== Process terminating with default action of signal 11 (SIGSEGV)
==23157== Access not within mapped region at address 0xBE7A7FFC
==23157== at 0x8376824: (within /usr/bin/gdb)
==23157== Stack overflow in thread 1: can't grow stack to 0xBE7A7FF8
==23157==
==23157== Process terminating with default action of signal 11 (SIGSEGV)
==23157== Access not within mapped region at address 0xBE7A7FF8
==23157== at 0x4021264: _vgnU_freeres (in /usr/lib/valgrind/x86-linux/vgpreload_core.so)