我的程序存在分段错误的问题,但很少发生(20次或更多只有一次),需要在GDB中进行调试,我需要手动重新运行程序直到出现分段错误(半天的重复操作只有一次失败 :( )。
所以问题是,是否有办法告诉GDB重新运行程序直到出现某个分段错误?
我的程序存在分段错误的问题,但很少发生(20次或更多只有一次),需要在GDB中进行调试,我需要手动重新运行程序直到出现分段错误(半天的重复操作只有一次失败 :( )。
所以问题是,是否有办法告诉GDB重新运行程序直到出现某个分段错误?
run
命令,并且别忘了set pagination off
。有关设置命令的信息,请参阅gdb文档中的Breakpoint Command Lists部分。简而言之:set pagination off
break _exit
commands
run
end
在commands
行之后,您将看到下面两行作为命令输入,以在达到断点时执行。
(gdb) set pagination off
(gdb) break exit
(gdb) commands
>run
>end
(gdb) run
"lldb -o run -b /path/to/binary -- args args args"
因此,您可以将其包装在shell循环中以获得所需的效果。"while lldb -o run -b /path/to/binary -- args args args; do sleep 1; done"
- Lawrence D'Anna