8

我有一个 vb.net 项目,有时在 IDE 中运行时会突然挂起。通常这不会是一个问题。只需点击“暂停”,查看当前正在运行的线程,然后找到死锁(或其他任何东西)。

但是现在我遇到了一种情况,不仅程序挂起,而且试图暂停它会导致 Visual Studio 本身挂起。为了重新获得控制权,我必须终止正在调试的程序的进程,此时 Visual Studio 恢复生机并说它无法暂停执行。这很令人沮丧,因为杀死进程意味着程序状态丢失(当然),所以我不知道挂在哪里

那么这种行为有什么常见的原因吗?我应该寻找什么?

4

5 回答 5

6

如果您的程序安装了全局挂钩(与应用程序通信) - 可能就是这种情况。钩子尝试与您的应用程序通信(由调试器暂停)并被锁定。并且调试器无法接收其窗口消息:钩子调试器(带有钩子 dll)和钩子应用程序之间的经典死锁。

于 2009-05-28T23:12:54.797 回答
3

查找 Visual Studio 问题的特定修复程序可能很棘手:http ://social.msdn.microsoft.com/Search/en-US/?query=visual%20studio%202008%20hang&ac=3

此外,并非所有来自 Microsoft 的修补程序都直接向公众发布。有些仅提供给系统出现特定问题的客户。因此,您必须联系 Microsoft 以获得修复。他们这样做是为了限制发布可能会破坏其他内容的修补程序的潜在不利影响。因此,如果所有其他方法都失败了,请给他们打电话。

以下是我在 Visual Studio 开始发挥作用时喜欢做的其他一些事情:

  1. 删除旧断点并监视变量。
  2. 在 Visual Studio 未运行的情况下,删除智能感知文件 (.ncb)
  3. 清理解决方案,然后重新构建所有代码。
于 2009-05-24T05:37:24.553 回答
0

检查修补程序和服务包。我看到一个与.net 编程和调试相关的错误挂起。(有时在 64 位操作系统上调试 C++ 32 位应用程序时,VS 会挂起。)

于 2009-05-23T19:24:32.363 回答
0

我刚刚遇到了一个非常相似的问题(VS 无法中断执行),使用 Debug -> Delete all breakpoints 解决了这个问题。

于 2012-08-06T06:41:27.637 回答
-1

我会检查正在调试的程序的代码,我认为您尝试调试的代码中可能存在无限循环或竞争条件。过去我就是这种情况,尤其是在我曾经拥有的单核笔记本电脑上。当您尝试暂停时,您能否提供有关您认为执行在程序中的哪个位置的任何信息?

于 2009-05-23T19:18:46.510 回答