是否有设置需要更改才能悬停在变量上并展开它们?
可能是一个bug。如果你有相关的问题,请提交Connect bug并提供重现步骤。
同时,您可以通过设置调试器选项,使用传统的调试引擎来解决该问题:工具 -> 选项 -> 调试 -> 通用:勾选“使用传统的C#和VB表达式求值器”和“使用托管兼容模式”。
这种解决方法每次对我都有效。但是请务必仍然提交错误报告!
我遇到了类似的问题,当我悬停在本地变量上时,有些可以让我更深入了解,而有些则不会显示任何内容。经过一番挖掘,我在msdn上发现了一篇文章这里,建议重置VS中的设置。一旦我这样做了,我收到了通知,说我正在运行发布模式,并且某些调试功能可能不可用。一旦我切换到调试模式,一切都像正常一样工作。
希望这对您也有帮助。
我在VS2015中遇到了类似的问题,一些变量在悬停时会显示调试值,而其他变量则不会显示任何内容。
启用Andrew Arnott提供的以下设置解决了我的问题: 工具 -> 选项 -> 调试 -> 通用:“使用传统的C#和VB表达式求值器”
这对我在VS2017中有效(我的VS是德语,因此选项卡名称可能有所不同):
项目 -> 属性 -> C/C++ -> 代码生成 -> 运行时错误检查 ->\RTC
还可以尝试停用优化选项,因为使您的代码更快可能意味着无法查看本地变量的值:
项目 -> 属性 -> C/C++ -> 优化 -> 禁用
我正在使用“Debug”配置进行工作,未设置优化,因此我重复:
使用托管兼容性:可以使用断点,但无法监视值
不使用托管兼容性:无法使用断点,但可以监视值
因此,在不使用托管兼容性时,使用断言作为断点可以让您既停在需要的地方又监视值。
试试看。
我向您提供了我的诀窍,因为我现在正面临同样的问题,在最后交付前1周。而微软声称计划在更新2中完全修复2016年问题,这是难以忍受的。
顺便说一下,这又是一个完美的“休息点”:
int *p = NULL, i = 1 / *p;
Kochise