退出。gdbinit

退出。gdbinit,gdb,Gdb,我编写了一个.gdbinit文件,其中包含要由gdb执行的命令: file program run arg1 arg2 bt quit 问题在于,如果程序崩溃,则退出会成功执行,如果程序成功完成,则不会执行 无论哪种情况,我都需要退出才能完成。如何修复 问题是,如果程序崩溃,quit将成功执行,而如果程序成功完成,quit将不会执行 这是因为如果程序成功完成,bt会导致错误。它会导致无堆栈错误: .gdbinit:3: Error in sourced command file: No sta

我编写了一个
.gdbinit
文件,其中包含要由
gdb
执行的命令:

file program
run arg1 arg2
bt
quit
问题在于,如果
程序
崩溃,则
退出
会成功执行,如果
程序
成功完成,则不会执行

无论哪种情况,我都需要退出才能完成。如何修复

问题是,如果程序崩溃,quit将成功执行,而如果程序成功完成,quit将不会执行

这是因为如果程序成功完成,
bt
会导致错误。它会导致
无堆栈
错误:

.gdbinit:3: Error in sourced command file:
No stack.
由于错误,后续的
quit
无法执行

您可以使用
$\u isvoid
$\u 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

如果程序以以下方式崩溃,请参阅文档。

程序接收信号SIGSEGV,分段故障。我收到一份报告
程序已退出且无任何跟踪。