如何检查核心中对象函数的返回值?

时间:2014-07-29 15:45:30

标签: gdb core

示例代码:

struct Message {
   virtual int id() const { return 0; }
};
struct Ping : public Message {
   virtual int id() const { return 1; }
};

假设您在gdb中加载了核心文件。 在这里你有一个消息*消息; 有没有一种简单的方法来确定idg函数将在msg上返回什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用“set print object on”启用vtable检查以打印派生类型的对象。对于C ++来说,这是非常理想的,我已经在我的.gdbinit中使用了15年。

当然,使用核心时无法调用方法,但您至少可以看到实际类型并自行查找方法。