zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

GDB查看内存

内存 查看 GDB
2023-06-13 09:12:02 时间
上个章节讲解的是通过 print 命令打印程序中表达式信息,但是不能查看内存中的一些信息。而 GDB 中为我们提供了查看内存的命令 x,它是 examine 命令的简写,使用 x 命令查看内存数据的格式有很多种,这里的内存数据可以是任意类型。命令的详细介绍如下。

命令格式如下:

x  / n/f/u addr

n、f、u 都是可选的参数,其中,n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容;f 表示显示的格式;u 表示将多少个字节作为一个值取出来,如果不指定的话,GDB默认是4个bytes,如果不指定的话,默认是4个bytes。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。 addr 表示一个内存地址。

  参数 f 的可选值:

实例:

(gdb) print arr
$5 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
(gdb) x /10dw arr
0x7fffffffdfb0:  1  2  3  4
0x7fffffffdfc0:  5  6  7  8
0x7fffffffdfd0:  9  0
(gdb) print main
$7 = {int (void)} 0x5555555546aa main
(gdb) x  0x5555555546aa
0x5555555546aa main :  -443987883

注意:x 命令使用时,由于输出格式字符 f 和单位长度 u 的字符是不冲突的,所以在使用的时候不需要考虑这两个参数的顺序问题。例如,10dw 和 10wd和参数的执行效果相同,但是 n 必须在最前面。

23656.html

GDB