我的程序有一个分段故障问题,但它很少出错(一次20次或更多次),并且要在GDB中调试它,我需要手动重新运行程序,直到发生分段错误(在重新运行的半天期间)只有一次失败:()。
所以问题是,有没有办法告诉GDB重新运行程序,直到某些段错误?
答案 0 :(得分:60)
在程序的退出处放置一个触发run
命令的断点,不要忘记set pagination off
。有关设置命令的信息,请参阅gdb文档的Breakpoint Command Lists部分。简而言之:
set pagination off
break exit
commands
run
end
在commands
行之后,您将看到输入接下来的两行作为到达断点时要执行的命令。
答案 1 :(得分:2)
(gdb) set pagination off
(gdb) break exit
(gdb) commands
>run
>end
(gdb) run