这里需要结合 breakpoint 和 commands 两个命令一起使用
首先先使用 break 给某个行号、地址、或者函数打断电,命令如下:
break my_function
随后使用 commands 命令,给这个断点设置命令(即,断点触发时的命令)
(gdb) break my_function
Breakpoint 1 at 0x4005d6: file my_program.cpp, line 10.
(gdb) commands 1
> silent
> set $count = $count + 1
> if $count == 2000
> bt
> continue
> end
> continue
> end
设置好断点命令后,初始化相关环境变量,在这里是 $count 环境变量,如下:
(gdb) set $count = 0
在断点被触发 2000 次后,gdb 进入调试模式,在2000次之前不进入调试模式。