设置一些自动显示的变量,当程序停住时,或是在你单步跟踪时,这些变量会自动显示。
如:
(gdb) display $rsp
(gdb) display $rbp
(gdb) info display
Auto-display expressions now in effect:
Num Enb Expression
1: y $rsp
2: y $rbp
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/05-param-return
Breakpoint 1, main () at 05-param-return.c:10
10 {
1: $rsp = (void *) 0x7fffffffe108
2: $rbp = (void *) 0x0
(gdb) s
11 int a = 5, b = 6;
1: $rsp = (void *) 0x7fffffffe0f0
2: $rbp = (void *) 0x7fffffffe100
(gdb) s
13 max(&a, &b);
1: $rsp = (void *) 0x7fffffffe0f0
2: $rbp = (void *) 0x7fffffffe100
(gdb) s
max (a=0x555555555210 <__libc_csu_init>, b=0x7ffff7facfc8 <__exit_funcs_lock>) at 05-param-return.c:4
4 {
1: $rsp = (void *) 0x7fffffffe0e8
2: $rbp = (void *) 0x7fffffffe100
(gdb) n
5 if (*a < *b)
1: $rsp = (void *) 0x7fffffffe0e0
2: $rbp = (void *) 0x7fffffffe0e0
(gdb) n
6 *a = *b;
1: $rsp = (void *) 0x7fffffffe0e0
2: $rbp = (void *) 0x7fffffffe0e0
(gdb) n
7 }
1: $rsp = (void *) 0x7fffffffe0e0
2: $rbp = (void *) 0x7fffffffe0e0
(gdb) n
main () at 05-param-return.c:14
14 printf("a, b max %d\n", a);
1: $rsp = (void *) 0x7fffffffe0f0
2: $rbp = (void *) 0x7fffffffe100