visual-studio - 在 Visual Studio 调试器中查看非平凡表达式时出现问题

标签 visual-studio debugging visual-c++

基本上我的问题是,我希望 Visual Studio (2010 Professional) 能够在我正在调试的代码中处理的监 window 口中计算任何 Visual C++ 表达式,但显然有一些东西阻止了这种情况的发生。例如,在处理 CString 时,在监 window 口中评估 CString 上的方法 IsEmpty 会给出一个 Member function not found 错误,基本相等比较(在正在调试的代码显然没有问题)。

我在这里错过了什么,还是我要求太多?明显的解决方案是在我的代码中针对我正在寻找的任何 CString 操作添加调试语句,但我宁愿不必这样做。

更新/示例:

CString blah = _T("blah");

在我的代码中调用 blah.IsEmpty() 工作正常,但在调试器的监 window 口中,我收到上述错误 (CXX0052)。变量blah的内容可以在监 window 口中看到。

最佳答案

我可以重现您的问题,事实上,VS 监 window 口显示未找到成员函数以及错误代码CXX0052enter image description here

the MSDN documentation我发现这个问题是由于调用内联函数而出现的,CString::IsEmpty()成员函数可能以某种方式内联(这就是监 window 口评估器看到的),以解决问题,首先打开您的项目配置并禁用内联

enter image description here

其次,仍然在项目配置中,选择在静态库中使用 MFC(如果将其用作共享库,监 window 口会以某种方式将被调用的函数视为内联函数,也许这是因为在共享库中,代码是内联的,并且监 window 口评估器不使用此类运行时库的调试版本)。

enter image description here

第三,清理并重建您的解决方案。

之后,问题应该在调试过程中得到解决(如果您看到监视面板中的值呈灰色,请记住刷新表达式)。请记住切换回原始调试选项或更好的选项,创建一个新的调试配置文件以保留此设置。

enter image description here

关于visual-studio - 在 Visual Studio 调试器中查看非平凡表达式时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499410/

相关文章:

c++ - 为什么这个字符作为整数放入 vector 中?

visual-studio - Visual Studio 安装和部署 : Adding Pre Requisits

Delphi服务应用程序通过Application.Run方法获取过去

c++ - 内联汇编代码无法在 Visual C++ 2010 Express 中编译

c++ - C++串口问题

c# - 构造函数/析构函数链接错误

c++ - Visual Studio 中包含的传递库

python - undefined variable ?

python - Django runserver 颜色输出

用gcc编译的C++在VC++14有效无效