变量查看: 最常见的使用便是使用print(可简写为p)打印变量内容。
以上述程序为例:
gdb helloworld
break helloworld.c:17 if i == 0
(gdb) run
Starting program: /home/book/helloworld
helloworld.
Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:17
17 result += i;
(gdb) print i < ------------------ 查看变量 i 当前的值
$1 = 10
(gdb) print result < ------------------ 查看变量 result 当前的值
$2 = 45
(gdb) print argc < ------------------ 查看变量 argc 当前的值
$3 = 1
(gdb) print str
$4 = 0x4006c8 "Hello World" < ------------------ 查看变量 str 当前的值
查看内存: examine(简写为x)可以用来查看内存地址中的值。语法如下:
x/[n][f][u] addr
其中:
单元类型常见有如下:
示例:
(gdb) x/4b str
0x4006c8: 01001000 01100101 01101100 01101100
可以看到,变量 str 的四个字节都以二进制的方式打印出来了。
查看寄存器内容: info registers
ra 0x3ff7ef2282 0x3ff7ef2282 < __libc_start_main+160 >
sp 0x3ffffffaa0 0x3ffffffaa0
gp 0x2aaaaac800 0x2aaaaac800
tp 0x3ff7fdd250 0x3ff7fdd250
t0 0x3ff7ed60b0 274742468784
t1 0x3ff7ef21e2 274742583778
t2 0x2aaaaac4f0 183251944688
fp 0x3ffffffab0 0x3ffffffab0
s1 0x0 0
a0 0x1 1
a1 0x3ffffffc28 274877905960
a2 0x3ffffffc38 274877905976
a3 0x0 0
a4 0x3ffffffad8 274877905624
a5 0x0 0
a6 0x3ff7fd88a8 274743527592
(内容过多未显示完全)
全部0条评论
快来发表一下你的评论吧 !