# 查看指定内存地址处的内容
命令格式:x/nfu <addr>
x : examine 的缩写
如:
(gdb)x/20xb 0x7fffffffd708
n : 表示要显示的内存单元个数
f : 表示显示方式, 可取如下值
-
- x 按十六进制格式显示变量。
- d 按十进制格式显示变量。
- u 按十进制格式显示无符号整型。
- o 按八进制格式显示变量。
- t 按二进制格式显示变量。
- a 按十六进制格式显示变量。
- i 指令地址格式
- c 按字符格式显示变量。
- f 按浮点数格式显示变量。
u表示一个地址单元的长度,与n一起表示显示的地址长度
-
- b表示单字节,
- h表示双字节,
- w表示四字节,
- g表示八字节
# gdb 使用
1. gdb /opt/mmaxscale/bin/maxscale core
2. bt #打印堆栈信心
3. f $num #定位到某一行
4. p $var #打印变量的值
5. x/nc 0x$address #以字符的形式打印内存 #例如:(gdb) x/6c 0x7f267733df15 0x7f267733df15: 117 'u' 112 'p' 100 'd' 97 'a' 116 't' 101 'e'
6. x/ns 0x$address #打印字符串
## 带参数gdb:
gdb --args 可执行文件 arg1 arg2 ....
## 实时调试进程
gdb -p 47671 或者 gdb attach 47671