Reputation: 17708
I use print (CEthPacket*) 0xeb609a0
to examine an object at the given address and get A syntax error in expression, near ') 0xeb609a0'.
What am I doing wrong?
EDIT: CEthPacket is a C++ class and I'm on gdb Fedora (6.8-37.el5).
Upvotes: 53
Views: 43104
Reputation: 841
I just ran in to similar issue, and, from a colleague of mine, I learnt that you need to provide the namespace that the class belongs to within a single quotes as following:
(gdb) p ('MyScope::MyClass'*) ptr;
Upvotes: 84
Reputation: 31
Also your starting namespace is the one from current stack. If you want to start from root you have to use ::NS1::NS2::Obj.
Upvotes: 3
Reputation: 19
I just ran into a very similar error. It was caused because I was trying to reference an object that is not defined in the scope of the current stack frame. Try changing to a stack frame where the CEthrPacket object is defined.
Upvotes: -1
Reputation: 213879
You didn't say on which platform, which version of GDB, or what CEthPacket
is.
My first guess is that you should try print (struct CEthPacket *) 0xeb609a0
instead.
Upvotes: 7