gpt4 book ai didi

c++ - 在 VS2010 watch 窗口中显示 C++ 纯虚类只显示 vtable

转载 作者:行者123 更新时间:2023-11-28 00:38:46 26 4
gpt4 key购买 nike

在我们的软件中,我们喜欢对接口(interface)使用纯虚类,并且一直运行良好。使调试这些类相当困难的一个小问题是让实现值显示在调试器中。现在我唯一能看到的数据是接口(interface)的 vtable。

是否有一种特定的方式来转换它以便我可以看到实现转换的值?或无需总是重新编译即可查看值的任何方式。

最佳答案

Visual Studio 2010 会将派生类型显示为对象中的第一个条目,名为 [type],在 __vfptr 字段上方。

如果您在调试器中没有看到派生类型,可能的原因是您的对象已损坏或优化阻止调试器推断出对象的实际类型。

在下面image , b 是用 new derived(5) 初始化的 base*

example

struct base
{
virtual bool func() = 0;
};

struct derived : public base
{
derived(int x) { i = x; }
virtual bool func() { return false; }
int i;
};

关于c++ - 在 VS2010 watch 窗口中显示 C++ 纯虚类只显示 vtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com