6

我正在使用 gdb 7.4 调试现有的 C 库
我正在尝试检查一个变量,不幸的是,该变量被声明为与其类型相同的名称:

extern const enum rtx_class rtx_class[NUM_RTX_CODE];

现在我只是找不到检查这个变量的方法。p rtx_class返回尝试使用类型名称作为表达式,与p &rtx_classand相同p rtx_class[0]
但是,info var rtx_class按预期工作并返回 const rtx_class rtx_class[145]。

任何想法?

4

1 回答 1

6

试试这个解决方法。对于您的二进制文件,请执行以下操作:

nm 你的可执行文件 |grep rtx_class

你应该得到地址(假设它是 0xabcdef,假设这是全局变量。然后在 gdb 中执行以下操作:

打印 *(rtx_class*)(0xabcdef+sizeof(rtx_class)*n)

这应该打印 rtx_class[n]。或者至少在我的简单测试用例中是这样。

于 2013-04-25T12:08:57.703 回答