Why gdb casting is not working?

前端 未结 4 1218
遥遥无期
遥遥无期 2020-12-23 21:24

I use print (CEthPacket*) 0xeb609a0 to examine an object at the given address and get A syntax error in expression, near \') 0xeb609a0\'.

W

相关标签:
4条回答
  • 2020-12-23 21:57

    Also your starting namespace is the one from current stack. If you want to start from root you have to use ::NS1::NS2::Obj.

    0 讨论(0)
  • 2020-12-23 22:16

    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.

    0 讨论(0)
  • 2020-12-23 22:16

    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.

    0 讨论(0)
  • 2020-12-23 22:19

    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; 
    
    0 讨论(0)
提交回复
热议问题