GDB:显示功能将我的{type}&地址打印为整数 - 想要更改为十六进制

时间:2013-10-01 00:05:21

标签: c++ c gdb

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

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

GDB commands by function - simple guide