Debugging gdb:仅在没有崩溃的情况下自动退出

Debugging gdb:仅在没有崩溃的情况下自动退出,debugging,gdb,Debugging,Gdb,我正在用gdb调试我的程序。我可以使用-x选项进行非交互式调试 gdb -x gdbinit ./myprogram gdbinit文件的内容: handle SIGINT pass nostop noprint handle SIGQUIT pass nostop noprint handle SIGUSR1 pass nostop noprint handle SIGUSR2 pass nostop noprint run backtrace quit gdb不处理这四个信号,因为我的程

我正在用gdb调试我的程序。我可以使用
-x
选项进行非交互式调试

gdb -x gdbinit ./myprogram
gdbinit
文件的内容:

handle SIGINT pass nostop noprint
handle SIGQUIT pass nostop noprint
handle SIGUSR1 pass nostop noprint
handle SIGUSR2 pass nostop noprint
run
backtrace
quit
gdb不处理这四个信号,因为我的程序需要它们才能正常工作

backtrace
命令可用于在崩溃后进行回溯

quit
命令使gdb在程序执行后退出,即使它已经崩溃

我只想在程序成功完成时自动退出。在其他情况下,gdb应可用于分析回溯和其他内容


如果程序无错误退出,gdb如何才能退出?

使用
$\u exitcode
。在上面的gdb脚本中,替换:

run
与:

并删除末尾的
quit
行。使用
-1
作为不可能的值是可行的,因为在POSIX中只能使用退出状态的低8位。(请参见中的
WEXITSTATUS()


要使用GDB Python API完成同样的任务,请参阅。

谢谢!正是我所需要的:)
set $_exitcode = -1
run
if $_exitcode != -1 
    quit
end