gpt4 book ai didi

debugging - gdb:仅自动退出而不崩溃

转载 作者:行者123 更新时间:2023-12-02 23:32:07 28 4
gpt4 key购买 nike

我正在使用 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 如何仅在程序退出且没有错误的情况下退出?

最佳答案

使用$_exitcode GDB convenience variable 。在上面的 gdb 脚本中,替换:

run

与:

set $_exitcode = -1
run
if $_exitcode != -1
quit
end

并删除最后的quit行应该可以。使用 -1 作为不可能的值是可行的,因为在 POSIX 中只能使用退出状态的低 8 位。 (请参阅 wait(2) 中的 WEXITSTATUS() )。

要使用 GDB Python API 来完成同样的事情,请参阅 here .

关于debugging - gdb:仅自动退出而不崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293001/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com