我正在寻找一种方法来获取坐在特定地址的符号。 我使用的类A保存结构B,其中包含变量C,我希望“信息符号”命令将返回C而不是A +偏移量。
问题是,有没有这样的符号。也就是说,给定这样的代码:
struct Foo { int x; };
struct Bar { int y; struct Foo xx; };
struct Bar bb;
存在一个全局符号bb
,但确实没有存在任何符号bb.xx
在符号表中。
所以,你不应该问什么字段符号bb
的坐在&bb.xx
“什么符号在&bb.xx
坐镇,但‘’我不相信这是对GDB来回答一个简单的方法。
你可以做的最好的是maintenance print type bb
,它将打印(除其他事项外):
nfields 2 0x2877c70
[0] bitpos 0 bitsize 0 type 0x2877a70 name 'y' (0x287a9ba)
type node 0x2877a70
name 'int' (0x287a9a9)
tagname '<NULL>' (0x0)
code 0x8 (TYPE_CODE_INT)
length 4
...
[1] bitpos 32 bitsize 0 type 0x2877570 name 'xx' (0x287a9c6) << this is the address you want
type node 0x2877570
name '<NULL>' (0x0)
tagname 'Foo' (0x287a98e)
code 0x3 (TYPE_CODE_STRUCT)
length 4
objfile 0x273cc10
...
没有必要签署您的文章或提出的问题标签标题您的用户卡和问题标记出现以下问题,问题可以通过标签进行排序和/或搜索。 – yoozer8