【问题标题】:Visual Studio 2013 C++ variable watch does not workVisual Studio 2013 C++ 变量监视不起作用
【发布时间】:2014-09-24 08:19:05
【问题描述】:

我在另一个网站上发现了另一个用户的线程,除了他在使用 C++ 时使用 Fortran 之外,他也遇到了同样的问题:

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

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

问题:

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

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

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

  3. 调试模式有时会正常工作。有时我必须重新启动调试器 10 次,然后它才能工作 1 次。添加或删除断点都没有关系。

我的设置:

Windows 7 64 位

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

我有另一个装有 Windows 7 64 位和相同 Visual Studio 版本的笔记本 -> 同样的问题!

【问题讨论】:

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


    【解决方案1】:

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

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

    确保您使用调试运行时库(检查“代码生成”中的“运行时库”并选择多线程调试或多线程调试DLL)

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

    在“代码生成”选项页面中禁用最小重建。它可能会弄乱你的程序数据库。

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

    如果您使用在命名空间中定义的全局变量,您始终必须将命名空间输入到观察窗口中(即命名空间“Y”中定义的变量“x”必须被观察为“Y” ::x')

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-07-28
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 2014-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-09
        相关资源
        最近更新 更多