我有一个vb.net项目,有时,当在IDE中运行时,突然挂起。通常这不是问题。只需点击“暂停”,查看当前正在运行的线程,并找到死锁(或其他任何内容)。
但现在我遇到的情况不仅是程序挂起,而且试图暂停它会导致visual studio本身挂起。为了获得控制权,我必须杀死正在调试程序的程序,此时visual studio恢复生机并说它无法暂停执行。这很令人沮丧,因为杀死进程意味着程序状态丢失(当然),所以我不知道挂起的位置。
这种行为有什么常见原因吗?我应该寻找什么?
答案 0 :(得分:6)
如果您的程序安装了全局挂钩(与应用程序通信) - 可能就是这种情况。钩子尝试与您的应用程序通信(由调试器暂停)并被锁定。并且调试器无法接收其窗口消息:钩子调试器(带钩子dll)和挂钩应用程序之间的经典死锁。
答案 1 :(得分:3)
查找Visual Studio问题的特定修复程序可能很棘手:http://social.msdn.microsoft.com/Search/en-US/?query=visual%20studio%202008%20hang&ac=3
此外,并非所有Microsoft的修补程序都直接向公众发布。有些只发给系统出现特定问题的客户。因此,您必须与Microsoft联系以获取修复程序。他们这样做是为了限制释放可能破坏其他东西的修补程序的潜在缺点。所以如果一切都失败了,给他们打个电话。
以下是我喜欢在Visual Studio开始执行时做的其他事情:
答案 2 :(得分:0)
检查修补程序和服务包。我见过一个与.net编程和调试挂起有关的bug。 (有时在64位操作系统上调试C ++ 32位应用程序时,VS会挂起。)
答案 3 :(得分:0)
我只是有一个非常类似的问题(VS无法中断执行),使用Debug - >删除所有断点解决了问题。
答案 4 :(得分:-1)
我会检查正在调试的程序的代码,我想在你试图调试的代码中可能存在无限循环或竞争条件。过去我就是这种情况,特别是在我曾经拥有的单核笔记本电脑上。您是否可以提供有关您尝试暂停时执行程序在程序中的位置的任何信息?