使用GDB调试程序时,我一直在调试模式下停止程序时遇到问题。当我进行回溯时,我发现它深藏在专有的第三方库调用堆栈中,我正在寻找为什么程序已停止。我仍然只是GDB初学者,所以我仍然不确定如何做到这一点。回顾一下,我发现“__cxa_throw()来自/usr/lib64/libstdc++.so.6”,所以我假设抛出了某种异常,但我想知道如何获得更多关于它的信息,如果可能。如何找出gdb停止的原因
2
A
回答
0
如何找出为什么GDB已经停止
GDB通常会告诉你马上,例如
Program received signal SIGABRT, Aborted.
0x00007ffff7750425 in __GI_raise (sig=<optimized out>)
程序因为接收到信号而停止。
我发现它在专有的第三方库调用堆栈中很深,我正在寻找为什么程序停止了。
它已停止正好由于GDB告诉你的原因。
看着回溯,我注意到
__cxa_throw() from /usr/lib64/libstdc++.so.6
所以我假设抛出了某种异常,但我想知道如何获得更多关于它的信息。
的__cxa_throw
存在确实表明,异常被抛出(和std::terminate()
存在表明它是未捕获的异常)。
而无需为第三方库的调试信息,你找到了事业的选择是有限的:
- 你可以阅读这方面的文档库,并仔细检查你有没有违反任何先决条件,它要求
- 您可以反汇编调用
__cxa_throw
的例程,并确定该例程被调用的原因。
1
相关问题
- 1. Android:如何找出“可惜已停止”的原因?
- 2. SQL查询停止工作,无法找出原因
- 3. Spring WebSocket停止工作,如何找到原因?
- 4. MongoDB停止不明原因
- 5. 如何找出AppCrash的原因?
- 6. 如何找出Android中SIGSEGV的原因
- 7. 如何找出GetObject失败的原因?
- 8. 删除[]失败,如何找出原因?
- 9. Windows服务停止的原因
- 10. 访问slurm停止工作的原因
- 11. 查找我的应用程序停止的原因,Android
- 12. GDB如何停止执行其他进程? GDB如何工作?
- 13. Eclipse停止运行原因=“断点”
- 14. 如何让GDB停止断言失败?
- 15. Akka DeathWatch - 找到终止的原因
- 16. 如何找出Python中出现警告的原因?
- 17. 如何找出我超出AWS EC2请求限制的原因?
- 18. Mod_security有时会阻止我的ajax脚本 - 我如何找出原因?
- 19. 如何获取禁止(')的“原因”?
- 20. gdb不停止在断点
- 21. GDB断点不会停止
- 22. 找出引起什么的原因java.security.AccessControlException
- 23. 找出缓慢Rails请求的原因
- 24. InnoSetup:找出重新启动的原因
- 25. ob_get_contents因某些未知原因停止工作
- 26. 如何找到ActiveRecord的原因ROLLBACK
- 27. 如何找到com.sun.star.uno.RuntimeException的真正原因?
- 28. 如何找到延迟的原因?
- 29. 如何找到OutOfMemoryError的原因?
- 30. gdb附加过程原因mach_msg_trap()
gdb“向上”命令可让您将焦点移到调用堆栈的更高一级。如果您在代码存在的例外之前移动到某个点,您可以看到当时正在执行的操作(并希望确定您是否调用了具有错误数据的函数)。 – mah
我这样做,我的代码中的一切似乎都很好(至少根据他们的文档)。 – Brian