VS 2012调试器挂起时,我尝试快速监视变量
本文关键字:监视 变量 调试器 2012 挂起 VS | 更新日期: 2023-09-27 18:31:47
我今天下午遇到了一个非常烦人的错误。我一直在控制台应用程序上随意工作,我已经工作了一段时间,当我快速观察任何变量时,VS2012调试器开始无缘无故地挂起。它挂起大约 15-20 秒,然后我收到消息
函数评估被禁用,因为以前的函数评估超时
如果我随后按 F10,调试器将取消附加,该过程将继续。它几乎在每个隐式声明的变量上崩溃
以下是我到目前为止为解决此问题而采取的步骤。
我采取的步骤:
- 重启 VS
- 重新启动计算机
- 删除了所有断点
- 删除了 ncb 和 suo 文件
- 未启用符号服务器
- 不使用网络位置,用户文件是本地的,项目文件是当地。
- 启用/禁用"仅我的代码"
- 确保未启用启用 .NET 框架源步进
- 确保已启用"跨步"属性
- 确保未启用启用源服务器支持
- 使用/SafeMode 启动 Visual Studio 以禁止显示扩展
- 清除监视窗口(无论如何都是空的)
- 已尝试将目标平台更改为x64和任何CPU
- 禁用反威信
- 重置Visual Studio默认设置(devenv.exe/ResetSettings)
- 重新安装 VS
我正在调试的应用程序:
- 类型 : C# 控制台应用程序
- 目标框架:3.5
- 平台目标:x86
为了我的健康,请帮忙。
编辑:我有Visual Studio Update 3,版本11.0.60610.01
编辑:我的电脑规格
- 视窗 7 终极版 64 位
- 戴尔光电960
- 英特尔酷睿 i5-2400 3.1 千兆赫
- 4 GB 内存
编辑:我在两台没有Visual Studio update 3的机器(相同的代码)上进行了测试,一台可以工作,另一台不起作用。
编辑:A 创建了一个具有相同设置的简化控制台应用程序,该应用程序仅包含以下代码行。我在观看时遇到挂起问题,然后它也取消连接。我的机器可能出了什么问题?
这是一个挂起调试器的简化应用程序
static void Main(string[] args)
{
var _AppLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
_AppLocation = _AppLocation.Substring(0, (_AppLocation.Length -
(System.Reflection.Assembly.GetEntryAssembly().GetName().Name.Length + 5)));
var directoryInfo = new DirectoryInfo(_AppLocation);
Console.ReadyKey(); //I break here, check the directoryinfo
}
编辑 10/3/13:这仍未解决,重新安装所有内容(办公室、框架、vs)完全没有解决问题。它必须是与操作系统/硬件相关的 vs2012 错误。我会在Microsoft开一张票,如果他们发现有用的东西,我会更新。
编辑 10/30/13:此问题已在两台具有不同硬件配置的计算机上重现。我仍在与微软联系以查找问题。看起来像与框架/窗口构建/视觉工作室相关的东西。
编辑 11/19/13:我仍在与Microsoft VS 升级团队保持联系,这是问题的进程监视器日志和 Visual Studio 崩溃转储。 http://sdrv.ms/1egpX4O
Microsoft VS Escalation团队并行找到的解决方案。在分析故障转储和进程监视器后,VS 2012调试器进程似乎会检查存储证书中是否有Microsoft根颁发机构证书。
由于两台计算机都处于受保护的无互联网环境中,因此它们都从未在线连接过。因此,他们从未下载过Microsoft CA。由于存储中没有 CA,因此它导致调试器挂起并崩溃,特别是 3.5 目标框架。
以下是 VS Team Microsoft调试时绕过此检查的修复程序:(在应用程序 app.config 中添加)
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
问题解决了!
我在Visual Studio 2015(包括Update 1和Update 2)中遇到了同样的问题。 因此,发布我的解决方案(我提交给 MS),以防其他人遇到此问题。
每当我尝试在Visual Studio 2015 Enterprise中使用QuickWatch时,它都会挂起开发环境。 我无法单击任何内容,我被迫通过任务管理器终止进程。 似乎模态窗口在它后面打开。
我的电脑是HP Spectre,并且插入了另一台显示器。 我已经在两台显示器上都试过了。
修复是:
- 切换到单个显示器
- 使快速监视打开(它确实如此)
- 移动它(必须保存窗口位置)
- 关闭它
- 插入第二台显示器
- 现在,当我使用快速手表时,它将正确打开
请考虑使用进程监视器工具获取调查期间发生的文件、网络、注册表和进程操作的日志。捕获日志后,您可以查看它并调查可能的原因。或者,您可以将日志发送给我,我会在我这边进行调查
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
我对msdn进行了快速研究,发现:http://social.msdn.microsoft.com/Forums/vstudio/en-US/2055d3a0-56d9-4134-be23-09a91203e508/quickwatch-says-the-following-for-all-evaluations-function-evaluation-disabled-because-a-previous
请尝试以下建议来检查结果:
单击"工具"|"选项。。|调试 |常规,然后取消选中"启用" 属性计算和其他隐式函数调用"选项。步 进入(F11)代码以查找"超时"的根本原因 重新启动 调试
有关函数评估错误的更多信息,请参阅 收件人:http://msdn.microsoft.com/en-美国/图书馆/MS234762(VS.80).aspx
此外,我们可以在博客上获得更多函数评估的解决方法: http://blogs.msdn.com/greggm/archive/2005/11/18/494648.aspx
另外听起来可能很奇怪,但你有视觉工作室2012的最新更新吗?
在打开UAC(用户帐户控制)的情况下运行VS2012时,以及安装一些扩展时,VisualStudio绑定到正在运行的w3p.exe进程时,该进程在1个工作进程下按预期工作。在允许存在多个工作进程时,工作室无法跟踪所有独立的线程和阻塞读取为损坏内存的数据。
对于我自己来说,除了 x64 位之外,我的保存设置有你的。 这总是让我在编程中头疼... 据我所知,Visual Stutio 是 32 位,肯定有一个原因...... 反正你抽样工作,没有挂断... 我不能确切地告诉你为什么会发生这种情况,但我确信这是一个与64位相关的开发环境。
我尝试提供的代码。
VS2012旗舰版在调试设置和发布设置上工作正常。
我在两台不同的PC(台式机和Surface Pro)上进行了测试
我还强制使用 x86 设置而不是 AnyCPU。
这是我对测试应用程序的输出:
http://beehiver.jurion.me/debug%20working.png
我建议完全卸载所有 VS 和所有版本的 .net,然后重新安装。这似乎是笔记本电脑上的问题。
我遇到了同样的问题。我想它更多地与硬件配置有关。我最近使用 Vs 4 从 8GB 内存升级到 2012GB,但从未能够复制这个问题。我曾经在早期的硬件配置中一直收到此错误。
当你的代码正在等待一些以前的线程完成那里的执行时,就会发生此问题,也尝试删除.suo文件,然后重新启动Visual Studio
这可能是相关的 Console.ReadKey() 问题/错误。http://blogs.microsoft.co.il/blogs/dorony/archive/2012/09/12/console-readkey-net-4-5-changes-may-deadlock-your-system.aspx如果使用其他"暂停"方法,问题是否仍然存在?
VS也有一些缺点。例如,如果您同时打开两个VS,在编写代码时,它有时会进入无响应并显示"保存自动恢复信息"