【问题标题】:Visual Studio Debugger displays wrong values for native typesVisual Studio 调试器显示本机类型的错误值
【发布时间】:2013-04-27 09:45:24
【问题描述】:

我正在使用 Visual Studio 2008(版本 9.0.30729.1 SP)和 .NET 3.5 在托管 C++ 和本机 C++ 中编写程序。
调试时,Visual Studio 会为 size_t 和本机指针等类型显示明显错误的值。 使用消息框,我可以验证实际值是否正确。
有没有办法解决这种行为?

这里有一个截图来澄清我的意思:

【问题讨论】:

  • 你运行的是调试版的程序吗?我似乎记得在运行发布版本时读取变量存在“有趣”。不过是前一段时间没有的,所以我可能记错了。
  • 是的,我正在运行调试版本。

标签: c++ visual-studio debugging native


【解决方案1】:

似乎将Configuration Properties 下的Common Language Runtime SupportPure MSIL Common Language Runtime Support (/clr:pure) 切换到Common Language Runtime Support ( /clr) 可以解决问题。我现在可以很好地查看原生对象了。

【讨论】:

    【解决方案2】:

    尝试安装KB957912(Visual Studio 2008 SP1 调试和断点更新),它可能会对您有所帮助。

    【讨论】:

    • 我安装了更新,但没有任何改变。
    【解决方案3】:

    我不知道 g_pGame 的类型是什么,但可以为 Visual Studio 编写扩展,以便查看自定义类型的值。尽管该功能主要针对其他用途,例如您拥有自己的 String 容器并且您知道它的内部细节并且您只想查看其中的字符串值。所以通常它不是为了解决不当行为。此外,编写这样的扩展需要付出努力,而且它不会帮助解决其他类型的问题。但我想让你知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多