上个章节讲解的是通过 print 命令打印程序中表达式信息,但是不能查看内存中的一些信息。而 GDB 中为我们提供了查看内存的命令 x,它是 examine 命令的简写,使用 x 命令查看内存数据的格式有很多种,这里的内存数据可以是任意类型。命令的详细介绍如下。
命令格式如下:
n、f、u 都是可选的参数,其中,n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容;f 表示显示的格式;u 表示将多少个字节作为一个值取出来,如果不指定的话,GDB默认是4个bytes,如果不指定的话,默认是4个bytes。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。<addr>表示一个内存地址。
实例:
注意:x 命令使用时,由于输出格式字符 f 和单位长度 u 的字符是不冲突的,所以在使用的时候不需要考虑这两个参数的顺序问题。例如,10dw 和 10wd和参数的执行效果相同,但是 n 必须在最前面。