我编写了一个包含要由gdb执行的命令的.gdbinit文件
file program
run arg1 arg2
bt
quit问题是,如果program崩溃,quit会成功执行;如果program成功完成,则不会执行。
无论哪种情况,我都需要quit来完成。如何修复?
发布于 2018-07-16 22:02:18
的问题是,如果程序崩溃,quit会成功执行,而如果程序成功完成,quit将不会执行。
这是因为如果程序成功完成,bt会导致错误。它会导致No stack错误:
.gdbinit:3: Error in sourced command file:
No stack.并且后续的quit不会因为错误而被执行。
您可以使用$_isvoid和$_exitsignal变量来修复.gdbinit脚本:
file program
run arg1 arg2
if $_isvoid ($_exitsignal)
echo The program has exited\n
else
echo The program has signalled\n
bt
end
quit请参阅Convenience Variables的文档。
https://stackoverflow.com/questions/51343972
复制相似问题