【gdb之x命令】express
能够使用examine命令(简写是x)来查看内存地址中的值。x命令的语法以下所示:ui
x/<n/f/u> <addr>spa
n、f、u是可选的参数。.net
n是一个正整数,表示须要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。orm
f 表示显示的格式,参见下面。若是地址所指的是字符串,那么格式能够是s,若是地十是指令地址,那么格式能够是i。blog
u 表示从当前地址日后请求的字节数,若是不指定的话,GDB默认是4个bytes。u参数能够用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当咱们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其看成一个值取出来。内存
<addr>表示一个内存地址。ci
注意:严格区分n和u的关系,n表示单元个数,u表示每一个单元的大小。字符串
n/f/u三个参数能够一块儿使用。例如:get
命令:x/3uh 0x54320 表示,从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示输出三个单位,u表示按无符号十进制显示。
(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.