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

问题描述 投票:0回答:1

示例代码:

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

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

c++ gdb core-file
1个回答
1
投票

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

当然,在使用核心时你不能调用这些方法,但你至少可以看到真实的类型并自己查找方法。

© www.soinside.com 2019 - 2024. All rights reserved.