You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio 2015调试.NET应用异常:部分变量无法查看与监视求助

我之前在VS2015调试.NET项目时也碰到过一模一样的问题,给你整理几个实用的排查和解决方法:

解决Visual Studio 2015调试.NET应用时变量无法查看的问题
  • 先确认编译模式是否正确
    一定要确保你当前用的是Debug模式调试,而不是Release模式。Release模式下编译器会做大量优化,很多变量会被“吃掉”,导致调试时根本找不到它们。你可以通过VS顶部的解决方案配置下拉框切换到Debug,然后重新生成整个项目。

  • 检查变量的访问权限
    错误提示里提到了“protection level”,那你得看看这个变量的访问修饰符。如果它是private或者internal,而你现在的调试上下文是在类外面(比如另一个类的方法里),那肯定访问不了。这种情况要么临时把修饰符改成public(调试完记得改回去),要么把断点打在这个变量所在类的内部方法里,这样就能正常查看了。

  • 清理并重新生成解决方案
    有时候调试符号文件(pdb文件)和代码不匹配或者损坏了,也会导致识别不了变量。你可以按这个步骤来:

    1. 右键解决方案,选择「清理解决方案」
    2. 接着选择「重新生成解决方案」
    3. 重启VS之后再尝试调试
  • 调整调试选项设置
    打开VS的「工具」->「选项」->「调试」->「常规」,检查以下选项是否勾选:

    • 启用地址级调试
    • 禁用「仅我的代码」(这个选项有时候会过滤掉一些你实际能访问但被标记为非用户代码的变量)
      如果调试的是.NET框架代码,还要勾选「启用.NET框架源代码单步执行」
  • 强制编译器保留变量调试信息
    就算是Debug模式,个别变量也可能被编译器优化掉。你可以给变量加个属性:[System.Diagnostics.DebuggerBrowsable(System.Diagnostics.DebuggerBrowsableState.RootHidden)],或者在代码里加一行无用的代码比如var temp = VariableName;,让编译器没办法优化掉这个变量。

  • 修复Visual Studio安装
    如果上面的方法都没用,可能是VS2015的调试组件出问题了。你可以打开控制面板的「程序和功能」,找到Visual Studio 2015,选择「更改」->「修复」,等修复完成后再试试调试。

内容的提问来源于stack exchange,提问作者ssuhas76

火山引擎 最新活动