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));

*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数组名,就可以显示数组中所有数据的内容了。

原文地址:https://www.cnblogs.com/taek/p/7489438.html