Visual Studio 2015 调试时局部变量丢失

10

问题
在调试时,只有this变量可在Locals中显示,其它局部变量无法在LocalsWatch中查看,但可以在Visual Studio的Intermediate Window中重新求值。

Visual Studio Debugging Window with Missing Locals

简述
我在为我编写的代码进行Xunit测试。我正在测试的库目标是ASP.NET Core RC1。这是我的 project.json:

{ "authors": [ "Matthew Abbott" ], "commands": { "test": "xunit.runner.dnx" }, "description": "Provides tests for the Fx.Content.Composer package", "dependencies": { "xunit": "2.1.0-rc1-build3168", "xunit.runner.dnx": "2.1.0-rc1-build204", "Fx.Content.Composer": "" }, "frameworks": { "dnx451": { }, "dnxcore50": { "dependencies": { "System.Runtime": "4.0.21-beta-23516" } } }, "licenseUrl": "", "projectUrl": "", "tags": [ "" ], "version": "1.0.0-*" }

当我调试单元测试时 (我使用 Visual Studio 的内置测试功能),我可以设置断点,但是局部/观察窗口不允许我检查局部变量声明。此外,我也无法获得这些局部变量的变量工具提示。

如果我将语句复制并粘贴到 Intermediate 中,则它们会添加到作用域中,但我不能轻松地进行调试。

我已尝试的事情

  • 确保我是在Debug模式下编译
  • 禁用JIT优化
  • 重置我的Visual Studio设置

需要注意的事项:

  • 我最近安装了Visual Studio 2015更新2
  • 我已经重新启动IDE多次,但没有成功
  • 我已经重新启动了我的计算机多次,但没有成功
  • 没有明确绑定到单元测试调试会话 - 当我按F5运行时,它们也失败了

非常感谢您的任何帮助!

更新 根据Victor的评论,我尝试从单元测试中进入一个方法进行调试,最初一个参数可以在范围内使用,但是稍后定义的变量未定义。

局部缺少本地变量?


1
运行在调试模式还是发布模式? - Victor Hurdugaci
如上所述 - 我总是检查我是否处于调试模式。只需重新安装VS并查看是否解决问题... - Matthew Abbott
重新安装没有解决问题 :-/ - Matthew Abbott
这是一个已知的 bug - https://dev59.com/8V4b5IYBdhLWcg3wvj8-. - Lukasz Pyrzyk
谢谢!那似乎解决了问题 - 我之前已经看到过那个操作系统的问题,但是由于提问者使用的是2015预览版,而现在我们已经更新到了2015 Update 2,我希望这个问题已经被解决了 - 我会通过Connect bug来进一步查看是否正在积极修复。 - Matthew Abbott
显示剩余2条评论
1个回答

11
更新:请注意,本答案仅适用于Visual Studio 2015 Update 2。如果您在任何其他版本的Visual Studio中缺少本地变量,则可能有其他问题。您只能在Visual Studio 2015 Update 2上安装热补丁程序。Visual Studio 2015 Update 3及更高版本已经修复了此问题。 原始回答: 看起来这是 Visual Studio 2015 Update 2 中引入的错误。基本上,调试器无法检查动态模块中的本地变量。我们今天发布了一个补丁程序。您可以从这里下载补丁程序。补丁程序的文档在这里。如果补丁未解决您的特定情况,请告诉我。
谢谢!
-Patrick Nelson

我自从更新2以来就遇到了OP的问题,但是即使在立即窗口中也看不到变量(而他似乎可以)。这个补丁为我解决了这个问题! - Chris
@Chris 如果我不在中间重新声明变量,我只能在那里获取变量,否则它们不会被计算。已安装补丁,但尚未测试。 - Matthew Abbott
3
我在使用的 VS 2015 Update 3 中遇到了同样的问题,无法安装该 Update 2 补丁。 - George Helyar
是的,我也是。我有更新3,无法安装此修复程序。这真的很烦人。 - AFgone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接