Windows中的挂起过程:有什么办法可以看出原因吗?


Answers:


12

你可能想要研究一下 Process Explorer 。您可以看到哪些文件/文件夹进程具有锁定功能。


如果双击某个进程,您甚至可以看到各个线程及其CPU使用情况。
itsadok

1
很好的建议,但请注意,这将告诉您进程已打开的对象,而不是它正在等待的对象。
Graeme Perrow

12

这需要一些技术知识,但可以使用(免费)Windows调试器分析挂起 WinDbg的 。它需要一些工作来安装,附加到进程,并设置符号(非常重要!)但是你可以用一个WinDbg命令找到挂起的原因(强调我的):

分析-v -hang

这是我以前没见过的。跑   这是从挂了一个转储后   过程,和 它将决定哪个   线程负责挂起   以及它在等什么。 我知道   windbg可以让你检查手柄,   显示每个线程中打开的所有锁,   让你全部检查它们   详情。但我没有意识到这一点   !分析,windbg可以做的很辛苦   对我来说 - 检查锁定开放   所有线程,确定哪些线程   等待其他人,和   建立一个订单来解决哪个问题   最初负责   挂。

资源

高级Windows调试 作者:Mario Hewardt,Daniel Pravat是一本非常好的书,可以帮助您开始使用WinDbg:前几章详细介绍了调试器,以及如何专门使用WinDbg。本书的其余部分充满了详细的调试案例研究,您无需阅读。我认为有一个案例研究描述了如何调试一个你会感兴趣的挂起。

在找到挂起的原因后,您甚至可以使用更高级的调试技术来展开它^^


所提到的案例研究可以在本书的第14章“!分析扩展命令”中找到。它包含有关如何解释WinDbg输出的非常详细和有用的信息。
Claudiu

0

据我所知,没有。你可以联系像 Wireshark的 看看你是否能在网络流量中找到一些东西来表明它正在等待什么,但这有点过分,你几乎找不到任何东西。


0

自从你正在尝试打印,我想知道是否调用了Windows网络搜索,而Word正在等待所有网络打印机被映射为选择。
你有本地连接的打印机吗?并且,您是否在使用共享打印机的企业网络域?


0

观看流程浏览器视频“ 200x的情况“ 其中作者显示诊断几种故障排除方案,包括挂起。这也是ctrl-scrolllock-scrolllock强制崩溃可以帮助诊断的地方。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.