Visual Studio 2013 C ++变量监视不起作用

时间:2014-08-01 07:22:28

标签: c++ visual-studio debugging visual-studio-2013

我在另一个网站上找到了另一个用户的线程,但是在我使用C ++的时候,他正在使用Fortran:

https://software.intel.com/en-us/forums/topic/508718

事实上,我可以引用她/他:

问题:

我的问题是在调试模式下程序算法工作正常,除了它没有显示变量的值。

  1. 我尝试了观察窗口并将鼠标移到变量上,但它们都不起作用。

  2. 我尝试了非常简单的代码,比如Hello World,只是定义了一个整数,但程序无法在调试模式下显示变量的值。

  3. 调试模式有时会正常工作。有时我必须重新启动调试器10次然后它可以工作一次。无论是添加还是删除断点都无关紧要。

  4. 我的设置:

    Windows 7 64位

    Visual Studio Ultimate 2013(来自MSDNAA,所有原创内容)版本12.0.30501.00更新2.

    我有另一台安装了Windows 7 64位且安装了相同Visual Studio版本的笔记本电脑 - >同样的问题!

2 个答案:

答案 0 :(得分:1)

我偶尔遇到同样的问题,以下步骤可以帮助我解决问题:

确保在Debug版本中停用优化。如果它们被启用,则编译器将删除堆栈帧,将变量值放入cpu寄存器或内联整个函数。 调试器不喜欢优化

确保使用Debug Runtime Library (在'Code generation'中选中'Runtime Library'并选择Multithreaded-Debug或Multithreaded-Debug-DLL)

重建您的应用(右键单击Project - >“Rebuild”)。有时存在可以通过重建来解决的问题(即,当您从存储库更新源文件时,这些文件比您的二进制文件更新但是更新,然后是您构建二进制文件的源;或者当您更新编译器或库时,只有部分文件更新应用程序正在重建)。

“代码生成”选项页面中的

禁用最小重建。它可能搞乱程序数据库。

如果一切都失败了,您可以尝试使用默认设置创建一个干净的新项目,并添加所有现有的.cpp / .h文件。这样就可以确保您的设置不会搞砸。

如果您使用在命名空间中定义的全局变量,则始终必须在监视窗口中输入命名空间(即,命名空间'Y'中定义的变量'x'必须被视为'Y' :: X')

答案 1 :(得分:0)

在程序结束时或getchar();语句末尾使用cout。根据我的经验,我不得不多次使用getchar();来显示变量和解决方案。试试吧!