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