09GDB查看内存分布


1. 整形内存查看

 1)要断点的代码行12

2)执行断点命令,断点到代码行12
3)运行程序,停止在代码行12
4)执行查看整数d内存的分布的命令:x /4xb &d,4代表4个单位,b代表单位为字节,x代表显示格式为16进制(使用16进制显示方便,因为一个字节正好可以显示两个16进制的数字)
5)p /x d 查看变量d的16进制数字:0x138

可以看到,内存分布是小端序:0x38 0x01,逆序后:0x138,和我们查看到的内存是一致的。

 2. 查看char*/char[]内存结构

 通过上图可以看出,先求char*/char[]的长度,然后再获取它们的内存结构。6db或者3db中的d代表10进制显示

2. 结构体内存查看

1)待查看结构体变量

2)断点到结构体变量初始化之后

3)运行

4)查看结构体变量总共内存大小

5)查看结构体变量内存分布:x  /20b  &tc,三部分分别是命令x, 查看长度20个字节,待查看变量的地址&tc

6)结构体变量的第一部分char name[12],他后面的97对应的字段是gener,33对应的的是age,通过这个可以看到各个字段之间的对齐关系

GDB