我需要做些什么来使用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
答案 0 :(得分:0)
转到Click.cpp第2940行;你会发现某人正在实例化一个新对象。构造函数中有一些错误。
从它的外观来看,应用程序中的堆已被删除。
如果程序曾经工作过,并且在此之前你改变了一些东西,可能会损坏堆,可以仔细检查。