在 Visual C++ 2010 中,请考虑以下事项:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
struct MyClass
{
MyClass() : mMember(0)
{}
void Func()
{
int tmp = 0;
tmp++;
}
private:
int mMember;
};
MyClass inst;
inst.Func();
return 0;
}
进入 Func() 并转到 Watches 窗格并观察成员变量mMember
。而不是看到它的价值,你会看到错误
CXX0033:错误:OMF 类型信息中的错误
是否可以让调试器显示成员的值?如果是这样,如何?我知道这可能是一个错误,我已经在 Microsoft Connect 上报告了它,我现在正在寻找一种解决方法(不涉及将定义移到函数范围之外),并解释为什么会发生这种情况。我提交的错误报告可以在这里找到: https ://connect.microsoft.com/VisualStudio/feedback/details/760149/visual-c-2010-cant-view-local-class-members-in-debugger-cxx0033- omf 类型信息中的错误错误
编辑:我完全知道在函数范围之外定义的类可以正常工作。
编辑 2:在此问题上对已向 Microsoft 提交并确认的错误的引用将大大有助于成为公认的答案。我已经搜索了一个,但没有找到。