Visual Studio 调试器显示本机类型的错误值
Posted
技术标签:
【中文标题】Visual Studio 调试器显示本机类型的错误值【英文标题】:Visual Studio Debugger displays wrong values for native types 【发布时间】:2013-04-27 09:45:24 【问题描述】:我正在使用 Visual Studio 2008(版本 9.0.30729.1 SP)和 .NET 3.5 在托管 C++ 和本机 C++ 中编写程序。 调试时,Visual Studio 会为 size_t 和本机指针等类型显示明显错误的值。 使用消息框,我可以验证实际值是否正确。 有没有办法解决这种行为?
这里有一个截图来澄清我的意思:
【问题讨论】:
你运行的是调试版的程序吗?我似乎记得在运行发布版本时读取变量存在“有趣”。不过是前一段时间没有的,所以我可能记错了。 是的,我正在运行调试版本。 【参考方案1】:似乎将Configuration Properties
下的Common Language Runtime Support
从Pure MSIL Common Language Runtime Support (/clr:pure)
切换到Common Language Runtime Support (
/clr)
可以解决问题。我现在可以很好地查看原生对象了。
【讨论】:
【参考方案2】:尝试安装KB957912(Visual Studio 2008 SP1 调试和断点更新),它可能会对您有所帮助。
【讨论】:
我安装了更新,但没有任何改变。【参考方案3】:我不知道 g_pGame 的类型是什么,但可以为 Visual Studio 编写扩展,以便查看自定义类型的值。尽管该功能主要针对其他用途,例如您拥有自己的 String 容器并且您知道它的内部细节并且您只想查看其中的字符串值。所以通常它不是为了解决不当行为。此外,编写这样的扩展需要付出努力,而且它不会帮助解决其他类型的问题。但我想让你知道。
【讨论】:
以上是关于Visual Studio 调试器显示本机类型的错误值的主要内容,如果未能解决你的问题,请参考以下文章
在Visual Studio调试器中显示Unreal的数据类型的值
在 Visual Studio 2015 中调试本机应用程序加载的托管 DLL