examine/x命令是用于显示内存中的值。其命令格式:x/[n/f/u] [addr]
-
n:正整数,表示可显示的内存长度
-
f:显示的格式:
-
s:如果内存指向的值是字符串,那么格式就是s
-
i:如果内存指向的值是指令,那么格式就是i
-
x:十六进制格式显示
-
d:十进制格式显示
-
u:十六进制无符号格式显示
-
o:八进制格式显示
-
a:十进制格式显示
-
c:字符格式显示
-
f:浮点格式显示
-
-
u:以多少个字节作为一个内存单元,默认为4。
-
b:1字节
-
h:2字节
-
w:4字节
-
g:8字节
-
-
addr:要显示的目标内存
(gdb) p str
$3 = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffd56dc4670 "hello"}, _M_string_length = 5, {_M_local_buf = "hello\000\000\000\000\000\000\000\000\000\000", _M_allocated_capacity = 478560413032}}
(gdb) x/s 0x7ffd56dc4670
0x7ffd56dc4670: "hello"