I'm debugging an existing C library with gdb 7.4
I'm trying to examine a variable which, unfortunately, was declared with the same name as its type:
extern const enum rtx_class rtx_class[NUM_RTX_CODE];
Now I just can't find a way to examine this variable. p rtx_class
returns Attempt to use a type name as an expression, the same with p &rtx_class
and p rtx_class[0]
.
However, info var rtx_class
works and returns const rtx_class rtx_class[145] as expected.
Any idea?
Try this workaround. For your binary do something like:
nm your-executable |grep rtx_class
You should get address (let's say it's 0xabcdef, assuming this is global variable. Then in gdb do something like:
print *(rtx_class*)(0xabcdef+sizeof(rtx_class)*n)
This should print rtx_class[n]. Or at least it does in my simple testcase.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With