【发布时间】:2011-01-04 13:57:34
【问题描述】:
我使用print (CEthPacket*) 0xeb609a0检查给定地址的对象并得到A syntax error in expression, near ') 0xeb609a0'.
我做错了什么?
编辑: CEthPacket 是一个 C++ 类,我在 gdb Fedora (6.8-37.el5) 上。
【问题讨论】:
标签: gdb
我使用print (CEthPacket*) 0xeb609a0检查给定地址的对象并得到A syntax error in expression, near ') 0xeb609a0'.
我做错了什么?
编辑: CEthPacket 是一个 C++ 类,我在 gdb Fedora (6.8-37.el5) 上。
【问题讨论】:
标签: gdb
我刚遇到类似的问题,从我的一位同事那里得知,您需要在单引号内提供该类所属的命名空间,如下所示:
(gdb) p ('MyScope::MyClass'*) ptr;
【讨论】:
std::vector<int>*?
你没有说在哪个平台上,哪个版本的 GDB,或者CEthPacket 是什么。
我的第一个猜测是你应该尝试print (struct CEthPacket *) 0xeb609a0。
【讨论】:
您的起始命名空间也是当前堆栈中的命名空间。如果你想从 root 开始,你必须使用 ::NS1::NS2::Obj。
【讨论】:
我刚刚遇到了一个非常相似的错误。这是因为我试图引用一个未在当前堆栈框架范围内定义的对象。尝试更改为定义了 CEThrPacket 对象的堆栈帧。
【讨论】: