我的C++应用程序给我一些奇怪的输出,但它运行完成,我想检查堆栈跟踪,但由于它不是segfaulting,因此很难确定它在哪里。我试过在exit
,_exit
和abort
设置断点,但是当我打电话堆栈我得到这样的在gdb中退出时生成堆栈跟踪
#0 0x00002aaaab1a7620 in exit() from /lib64/libc.so.6
#1 0x000000000041f19e in main()
这可能是因为我的应用程序有一个perl前端包裹着SIG,有完成后生成堆栈的另一种方法?
你的调用堆栈只是意味着没有人调用'exit()'直到'main()'中的'0x0411f19e'。如果您质疑好奇地省略的“奇怪输出”,您可能应该交互式调试该过程。 – WhozCraig
什么奇怪的输出?也许知道这将意味着放置断点的适当位置。 – ikegami
[GDB - 如何从程序退出的位置找到]的可能重复(https://stackoverflow.com/questions/6376869/gdb-how-to-find-out-from-where-program-exited) –