gdb调试时查看内存

时间:2021-03-08 16:38:52

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

n、f、u是可选的参数,<addr>表示一个内存地址

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

2) f 表示显示的格式

3) u 表示将多少个字节作为一个值取出来,如果不指定的话,GDB默认是4个bytes,如果不指定的话,默认是4个bytes。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。


参数 f 的可选值:

x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。

f 按浮点数格式显示变量。


参数 u 可以用下面的字符来代替:

b 表示单字节

h 表示双字节

w 表示四字 节

g 表示八字节


例如:

x/1tb 0x7fffffffe37e

查看1个单字节二进制


x/32tb 0x7fffffffe37e

查看32个单字节二进制


x/1dw 0x7fffffffe38e

十进制查看1个int


x/2dw 0x7fffffffe38e

十进制查看2个int