GDB:如何从自动显示中删除变量

ead*_*ead 10 gdb

我偶然发现了gdb的自动显示功能,这非常强大和方便.打电话后

(gdb) display/i $pc
(gdb) display $rax
Run Code Online (Sandbox Code Playgroud)

每个步骤后自动显示观察值:

(gdb) si
0x0804805e in print_loop_start ()
2: $rax = 0
1: x/i $pc
=> 0x804805e <print_loop_start+6>:  mov    0x4(%ebp,%eax,4),%ecx
Run Code Online (Sandbox Code Playgroud)

但是,如果不再感兴趣,我如何"取消"$ rax中的价值?

dbr*_*nk0 17

Gdb显示帮助说:

" undisplay用于取消之前发出的显示请求."

所以,如果你这样做display a的话display b,和display cGDB将这个请求(你可以通过重播发出不带任何参数见)给出的数字.然后你可以使用这个数字undisplay.

例:

(gdb) display a
1: a = 32767
(gdb) display b
2: b = 0
(gdb) display c
3: c = 0
(gdb) undisplay 2
(gdb) step
6     b = 2;
1: a = 1
3: c = 0
Run Code Online (Sandbox Code Playgroud)

gdb文档中的详细信息.