GDB似乎永远只是为C程序的工作,但对于C++我经常得到这些神秘的堆栈:调试C++从GDB的核心文件
(gdb) bt
#0 0x08055fa4 in std::runtime_error::what()
#1 0x080576c8 in std::runtime_error::what()
#2 0x08057dda in std::runtime_error::what()
#3 0x080580d2 in std::runtime_error::what()
#4 0x08058662 in std::runtime_error::what()
#5 0x08058725 in std::runtime_error::what()
#6 0x0806ef7a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>()
#7 0x00c0adec in __libc_start_main() from /lib/libc.so.6
#8 0x0804d011 in std::runtime_error::what()
从而在表面提供绝对没有线索,问题出在哪里发生。无论如何,从这样的核心文件中获取更多信息 - 或者让程序转储更有用的东西?
只是一些进一步的信息,有问题的Makefile有-g选项,但也有-s,它去除了调试信息... grrrrr。所以希望消除那个愚蠢的旗帜会让我下一次更好的核心。 – 2009-10-29 02:23:59