1

我正在使用 GDB 在命令行上进行调试。我有一些 typedef 结构,我想通过它们的地址使用“显示”命令来跟踪它们。我的命令如下所示:

display {Link} 0x100103980

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

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

我的输出看起来像:

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。

谢谢

4

1 回答 1

0

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

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

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

于 2013-10-01T00:21:55.307 回答