需求背景:条件断点可能执行多次,但是可能在最后一次执行引发了后续的问题,但是断点位置并非问题现场,如何使得断点在最后一次停下来?
方法:
1.首先设置条件断点
(gdb) b
(gdb) cond breakpoint_number stop_condition
2.然后设置忽略断点次数,尽量将次数设置大一些
(gdb)ignore breakpoint_number N
3.执行程序后,通过断点信息来查看断点执行了多少次
(gdb)info b
此时gdb会给出断点已经执行的测试,假设执行了n次,此时重新设置断点忽略次数
(gdb)ignore breakpoint_number n-1
此时重新运行程序,GDB将在最后一次hit到该断点时stop下来。