8

有没有办法在 GDB 中标记/命名断点,以便更容易地识别它们,例如,info b?如果是这样,怎么办?

4

2 回答 2

6

不,没有办法做到这一点。

http://users.ece.utexas.edu/~adnan/gdb-refcard.pdf

于 2013-03-23T02:12:00.090 回答
3

虽然这对 的输出没有帮助,但info b对于稍后需要在命令中引用断点的其他目的,您可以将最后一个断点的断点编号存储$bpnum在另一个便利变量中,例如:

b foo.c:123
set $im_a_breakpoint = $bpnum
# ... set some more breakpoints and do some other stuff ...
disable $im_a_breakpoint

再举一个例子,我现在将这种模式用于一项任务:我在 JIT 发出的代码中使用普通的 gdb 断点,这需要在代码实际发出后在地址上设置断点,因为 gdb 修改了代码。为此,我实际上从它自己的commands块中禁用了初始设置断点:

set $cur_stop_point = 0x41aaa
b basic_jit_cache::copy_block if ((uint32_t)this->code_ptr()) > ($gencode + $cur_stop_point)
set $cur_stop_point_setup_bp = $bpnum
commands
  b *($gencode + $cur_stop_point)
  disable $cur_stop_point_setup_bp
  cont
end
于 2020-03-04T06:02:15.630 回答