gdb - 从核心文件中获得完全意外的错误

时间:2014-08-09 21:38:33

标签: c++ gdb

我需要做些什么来使用GDB或其他工具从核心文件中获取意外的错误代码或类似内容,以了解为什么我的守护程序在运算符new中死亡?

(gdb) bt
#0  0x48775bd7 in thr_kill () from /lib/libc.so.7
#1  0x48726f46 in pthread_kill () from /lib/libthr.so.3
#2  0x487245da in raise () from /lib/libthr.so.3
#3  0x4880abba in abort () from /lib/libc.so.7
#4  0x4866e65f in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/libstdc++.so.6
#5  0x486729aa in std::set_unexpected () from /usr/lib/libstdc++.so.6
#6  0x486729f2 in std::terminate () from /usr/lib/libstdc++.so.6
#7  0x486728ea in __cxa_throw () from /usr/lib/libstdc++.so.6
#8  0x486c77ac in operator new () from /usr/lib/libstdc++.so.6
#9  0x0806ad4c in XXX::process_in (this=0x4b110d40,
    map_settings_to_save=@0x7f7fcc98, str_answer=@0x7f7fcf84)
    at Click.cpp:2940

1 个答案:

答案 0 :(得分:0)

转到Click.cpp第2940行;你会发现某人正在实例化一个新对象。构造函数中有一些错误。

从它的外观来看,应用程序中的堆已被删除。

如果程序曾经工作过,并且在此之前你改变了一些东西,可能会损坏堆,可以仔细检查。