【发布时间】:2014-02-01 10:15:03
【问题描述】:
基本上就是这样。我无法从 GDB 中的对象调用某些继承的函数/成员。
例如,我的代码中有这一行:
41 std::cout << foo->size() << std::endl;
在控制台中打印 'foo' 的大小。但是当我停止使用 GDB 并尝试打印它时,我得到了这个:
(gdb) print foo->size()
Couldn't find method foo::size
编辑
foo 声明是:
class foo : public sc_core::sc_module { ... };
sc_module 是一个 SystemC 接口,其中方法 size() 是。 sc_core 是 namespace。所以当我尝试得到这个时:
(gdb) print (sc_module*)pipe.name()
No symbol "sc_module" in current context.
(gdb) print (sc_core::sc_object*)pipe.name()
A syntax error in expression, near `)pipe.name()'.
有没有一种方法可以让我从那时起调用该方法?
非常感谢:)
【问题讨论】:
-
试试 ((bar*)foo)->size()
-
我之前尝试过,但我得到了同样的错误。我将编辑我的问题以添加更多信息。
标签: c++ inheritance methods printing gdb