gdb调试参数
参考 这里
1)gdb 打印字符串的全部内容
set print element 0
2)用x命令查看内存(examine的缩写)
(gdb) x/1ub 0x7ffff7fbf7a0
0x7ffff7fbf7a0: 196
从地址0x7ffff7fbf7a0开始, 读取 1 个单字节,以16进制形式读取
1可换成任意整数
u可以替换成:
d 按十进制格式显示变量
x 按十六进制格式显示变量
a 按十六进制格式显示变量
u 按十六进制格式显示无符号整型
o 按八进制格式显示变量
t 按二进制格式显示变量
c 按字符格式显示变量
f 按浮点数格式显示变量
h可以替换成:
b表示单字节,h表示双字节,w表示四字 节,g表示八字节
3)查看数据
int *array = (int *) malloc (len * sizeof (int));
p *array@len
@的左边是数组的首地址的值,也就是变量array所指向的内容,右边则是数据的长度,其保存在变量len中,其输出结果,大约是下面这个样子的:
(gdb) p *array@len
$1 = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40}
如果是静态数组的话,可以直接用print数组名,就可以显示数组中所有数据的内容了。