GDB:显示函数将我的 {type} 的地址打印为整数——想改成十六进制



>我正在使用GDB在命令行上进行调试。我有一些 typedef-structs,我想通过它们的地址使用"display"命令来跟踪它们。我的命令如下所示:

display {Link} 0x100103980

链接位于链表中的位置。除了这个地址,我没有任何其他方法可以访问它。

编辑:澄清一下,链接是结构类型,而不是变量。我的链接没有任何变量名称,只有它们的地址。

我的输出如下所示:

5: {Link} 4296030592 = {
  value = 100, 
  next = 0x1001039e0
}

但如您所见,地址不再以十六进制表示,而是现在采用 int 形式。我尝试使用/x,但这也不起作用:

(gdb) display/x {Link}0x100103980
6: /x {Link} 4296030592 = {
  value = 0x64, 
  next = 0x1001039e0

"显示"是否可以以十六进制显示地址?如果是这样,如何?编辑:我正在运行OSX 10.8。

谢谢

如果你用结构的名称而不是地址来调用它,它将以十六进制显示地址。或者使用 print 显示变量的地址:

(gdb) print/x &Link     print address of variable Link in hex

按功能划分的 GDB 命令 - 简单指南

最新更新