程序退出原因不明,用GDB调试无可用信息,棘手

发布于 2022-08-09 01:24:41 字数 386 浏览 11 评论 7

最近在调试代码时(kernel linux2.6)出现一个很头疼的问题:程序执行到某一位置(由于项目代码现在已过于庞大,具体哪个位置还未准确定位,打印信息此时已不准确),就直接退出,没有任何提示,没有segment fault,就像很正常退出一样。使用GDB调试,也是什么信息都没有,最后停在命令行:

>gdb Program exit with code 0145

设置ulimit -c 1000000
使用bt,提示no stack(实际情况,应该是不可能的)

现在很头疼,因为相关代码有信号量操作,我自己怀疑是和信号量有关,但是信号量导致程序无声无息退出,难以理解,而且也无法确认是否是这个问题。

请教有没有遇到过类似问题的朋友能够指点一二?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

昇り龍 2022-08-13 13:15:45

有可能是栈崩溃了,因为越界把函数调用时入栈的东西给覆盖了

听你说爱我 2022-08-13 13:15:45

原帖由 NewCore 于 2008-7-5 09:31 发表
最近在调试代码时(kernel linux2.6)出现一个很头疼的问题:程序执行到某一位置(由于项目代码现在已过于庞大,具体哪个位置还未准确定位,打印信息此时已不准确),就直接退出,没有任何提示,没有segment fa ...

具体出现在那一行也不好找吗。顺着程序入口,以及程序出现异常的情况,加上你的预期结果,应该是可以找到出错地方的。

情绪少女 2022-08-13 13:15:43

原帖由 NewCore 于 2008-7-5 12:14 发表
这个退出码不是程序里面自己代出来的,所以我不明白是什么意思...

这个时候正是 strace 或类似工具大显神威的时候

梦过后 2022-08-13 13:14:50

原帖由 jamesr 于 2008-7-5 10:03 发表
试试用ltrace。

或者是 strace 或类似工具。

远山浅 2022-08-13 01:29:41

yes

一直在等你来 2022-08-12 08:37:04

这个退出码不是程序里面自己代出来的,所以我不明白是什么意思...

轻拂→两袖风尘 2022-08-11 08:05:37

编译的时候-g了没有?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文