examine 命令(简写是 x )来查看内存地址中的值。

x/<n/f/u> <addr>

n 是一个正整数,表示显示内存的长度,从当前地址向后显示几个地址的内容。

f 表示显示的格式,

u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字节,g表示八字节。

<addr>表示一个内存地址。

    n/f/u三个参数可以一起使用。
 
    x /nfu 0x<addr>:查看内存地址中的值。

f 可取如下值

x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u表示一个地址单元的长度

b表示单字节,

h表示双字节,

w表示四字节,

g表示八字节

如:

(gdb) x/16xw 0x7FFFFFFFE0F8
0x7fffffffe0f8: 0x11f71b00      0x5f731990      0x00000000      0x00000000
0x7fffffffe108: 0xf7de30b3      0x00007fff      0xf7ffc620      0x00007fff
0x7fffffffe118: 0xffffe1f8      0x00007fff      0x00000000      0x00000001
0x7fffffffe128: 0x55555198      0x00005555      0x55555210      0x00005555


(gdb) x/16xg 0x7FFFFFFFE0F8
0x7fffffffe0f8: 0x5f73199011f71b00      0x0000000000000000
0x7fffffffe108: 0x00007ffff7de30b3      0x00007ffff7ffc620
0x7fffffffe118: 0x00007fffffffe1f8      0x0000000100000000
0x7fffffffe128: 0x0000555555555198      0x0000555555555210
0x7fffffffe138: 0xffbf095e0e0aea57      0x0000555555555080
0x7fffffffe148: 0x00007fffffffe1f0      0x0000000000000000
0x7fffffffe158: 0x0000000000000000      0x0040f6a1cc2aea57
0x7fffffffe168: 0x0040e6e26ec4ea57      0x0000000000000000


(gdb) x/16xd 0x7FFFFFFFE0F8
0x7fffffffe0f8: 6877869162492271360     0
0x7fffffffe108: 140737351921843 140737354122784
0x7fffffffe118: 140737488347640 4294967296
0x7fffffffe128: 93824992235928  93824992236048
0x7fffffffe138: -18285573919020457      93824992235648
0x7fffffffe148: 140737488347632 0
0x7fffffffe158: 0       18285573285014103
0x7fffffffe168: 18268258704878167       0


(gdb) x/16xh 0x7FFFFFFFE0F8
0x7fffffffe0f8: 0x1b00  0x11f7  0x1990  0x5f73  0x0000  0x0000  0x0000  0x0000
0x7fffffffe108: 0x30b3  0xf7de  0x7fff  0x0000  0xc620  0xf7ff  0x7fff  0x0000


(gdb) x/16xb 0x7FFFFFFFE0F8
0x7fffffffe0f8: 0x00    0x1b    0xf7    0x11    0x90    0x19    0x73    0x5f
0x7fffffffe100: 0x00    0x00    0x00    0x00    0x00    0x00    0x00    0x00

(gdb) x/xg $rsp
0x7fffffffe0f0: 0x0000000600000006

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐