如何在gdb中检查与其类型同名的变量

时间:2013-04-25 10:46:20

标签: c debugging gcc gdb

我正在使用gdb 7.4来调试现有的C库 我试图检查一个变量,遗憾的是,变量的名称与其类型相同:

extern const enum rtx_class rtx_class[NUM_RTX_CODE];

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

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

尝试此解决方法。对于你的二进制文件,请执行以下操作:

nm your-executable | grep rtx_class

你应该得到地址(假设这是全局变量,假设它是0xabcdef。 然后在gdb中做类似的事情:

print *(rtx_class *)(0xabcdef + sizeof(rtx_class)* n)

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