Debugging gdb:仅在没有崩溃的情况下自动退出
我正在用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不处理这四个信号,因为我的程
-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