我正在使用gdb 7.4来调试现有的C库 我试图检查一个变量,遗憾的是,变量的名称与其类型相同:
extern const enum rtx_class rtx_class[NUM_RTX_CODE];
现在我找不到检查这个变量的方法。 p rtx_class
返回尝试将类型名称用作表达式,与p &rtx_class
和p rtx_class[0]
相同。
但是,info var rtx_class
可以正常工作并按预期返回const rtx_class rtx_class [145]。
有什么想法吗?
答案 0 :(得分:6)
尝试此解决方法。对于你的二进制文件,请执行以下操作:
nm your-executable | grep rtx_class
你应该得到地址(假设这是全局变量,假设它是0xabcdef。 然后在gdb中做类似的事情:
print *(rtx_class *)(0xabcdef + sizeof(rtx_class)* n)
这应该打印rtx_class [n]。或者至少它在我的简单测试用例中。