一种在gdb中打印内存地址的方法

A way to print with memory address in gdb

有没有办法在 gdb 中打印某些内容时包含内存地址。例如:

>>> p __libc_argc
 = 1

相反,我想要:

>>> p __libc_argc
 = 0x7fffffffec63  1

要打印变量的内存地址,只需在其名称前添加 &。如果您经常想要打印变量地址及其值,那么可能值得为此创建一个命令。例如,将下面的代码添加到您的 .gdbinit 文件

define pwa
  print &$arg0
  print $arg0
end

有了这个,您将有一个 pwa 命令(“带地址打印”的缩写),您可以在需要地址和值时使用它来代替标准 print 命令待打印。