GDB:如何从子对象打印/调用父函数

GDB: How to print/call parent functions from a child object?

本文关键字:打印 调用 函数 对象 GDB      更新时间:2023-10-16

基本上就是这样。我无法从 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_corenamespace.所以当我尝试得到这个时:

(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()'.

有没有办法从这一点调用该方法?

非常感谢:)

如果方法已优化,则可以看到此行为。 可能还有其他原因。

后面示例中的语法错误表明您的 gdb 可能已旧。 我们已经在最新版本中修复了此类错误。