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

VS 2012调试器挂起时,我尝试快速监视变量

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,并且插入了另一台显示器。 我已经在两台显示器上都试过了。

修复是:

  1. 切换到单个显示器
  2. 使快速监视打开(它确实如此)
  3. 移动它(必须保存窗口位置)
  4. 关闭它
  5. 插入第二台显示器
  6. 现在,当我使用快速手表时,它将正确打开

请考虑使用进程监视器工具获取调查期间发生的文件、网络、注册表和进程操作的日志。捕获日志后,您可以查看它并调查可能的原因。或者,您可以将日志发送给我,我会在我这边进行调查

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,在编写代码时,它有时会进入无响应并显示"保存自动恢复信息"