求高手解答,程序在main函数退出之后core了!

lambert_s 2010-10-14 02:31:13
RT,程序结构是while死循环,按Ctrl + C后发出信号终止循环,然后完成类的析构,main函数return之后发生Abort(coredump)。

GDB调试core,堆栈如下:
#0 0xc00000000033bcd0:0 in kill+0x30 () from /usr/lib/hpux64/libc.so.1
#1 0xc000000000260010:0 in raise+0x30 () from /usr/lib/hpux64/libc.so.1
#2 0xc0000000002fda30:0 in abort+0x190 () from /usr/lib/hpux64/libc.so.1
#3 0xc000000001f65cf0:0 in std::terminate()+0x50 ()
from /usr/lib/hpux64/libCsup.so.1
#4 0xc000000001f906e0:0 in __cxxTerm+0x60 () from /usr/lib/hpux64/libCsup.so.1
#5 0xc0000000002a56c0:0 in __exit_handler+0xa0 ()
from /usr/lib/hpux64/libc.so.1

求高手解答!
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
justkk 2010-10-14
  • 打赏
  • 举报
回复
会不会是类的析构造成内存的异常访问..
louyong0571 2010-10-14
  • 打赏
  • 举报
回复
之前的代码没问题,现在的代码有问题,结论就是改的有问题。呵呵
wwwunix 2010-10-14
  • 打赏
  • 举报
回复
也有可能是内存溢出了。造成退出部分的程序混乱了。
wwwunix 2010-10-14
  • 打赏
  • 举报
回复
建议:
1、把这些小改动都改回去,试试看还会不会coredump
2、估计原来就有问题,只是这次的改动触发了这个bug。
lambert_s 2010-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwunix 的回复:]

应该是类中分配使用了一些内存没有在析构中释放。
[/Quote]
这一点我也清楚,但是之前跑的时候一直是好的,这次只是一点小改动,只涉及数据库的查询,不涉及内存。
有没有其他可能的原因?
wwwunix 2010-10-14
  • 打赏
  • 举报
回复
应该是类中分配使用了一些内存没有在析构中释放。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧