gpt4 book ai didi

c++ - 在 gdb 中退出时生成堆栈跟踪

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:06 26 4
gpt4 key购买 nike

我的 C++ 应用程序给了我一些奇怪的输出,但它运行到完成,我想检查堆栈跟踪,但由于它没有段错误,因此很难确定它在哪里。我已经尝试在 exit_exitabort 上设置断点,但是当我调用堆栈时,我得到类似这样的结果

#0  0x00002aaaab1a7620 in exit () from /lib64/libc.so.6
#1 0x000000000041f19e in main ()

这可能是因为我的应用程序有一个用 sig 包裹的 perl 前端,是否有另一种方法可以在完成时生成堆栈?

最佳答案

这就是堆栈跟踪的样子。主调用最后退出,然后在退出内打印堆栈跟踪。您无法通过堆栈跟踪找到发生了什么事情。一旦找到发生某些事情的位置,您就可以在那里获取堆栈跟踪并找出执行是如何到达那里的。

无论您要查找的输出是在退出之前发生的,而且在您获得堆栈跟踪时该函数已经返回。因此,您需要在输出发生之前设置断点。然后您可以逐行检查代码以找出输出的是哪一行。

关于c++ - 在 gdb 中退出时生成堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21706096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com