我尝试在 Word 中打印文档,但 Word 冻结了。有什么方法可以让我查看它正在等待什么资源吗?
我正在使用 Windows XP 和 Word 2007(虽然我想象答案并不取决于冻结的过程)
答案1
这需要一点技术知识,但可以使用(免费的)Windows 调试器来分析挂起调试。它需要一些工作来安装、附加到进程以及设置符号(非常重要!)但随后您可以使用单个 WinDbg 命令找到挂起的原因(重点是我的):
分析-v-hang
这是我以前没有遇到过的。在打开挂起进程的转储后运行此命令,然后它将确定哪个线程导致了挂起以及它在等待什么。我知道 windbg 可以让你检查句柄,显示每个线程中打开的所有锁,并让你详细检查它们。但我没有意识到,使用 !analyse,windbg 可以为我完成艰苦的工作 - 检查所有线程打开的锁,确定哪些线程正在等待其他线程,并建立一个顺序来找出哪个线程最初导致了挂起。
还高级 Windows 调试Mario Hewardt 和 Daniel Pravat 合著的《WinDbg 入门》是一本非常好的书:前几章非常详细地概述了调试器,以及如何具体使用 WinDbg。本书的其余部分充满了详细的调试案例研究,您不必阅读。不过,我认为有一个案例研究描述了如何调试挂起,这会引起您的兴趣。
找到挂起的原因后,您甚至可以使用更高级的调试技术来解除挂起^^
答案2
您可能需要查看进程探索器。您可以查看进程锁定了哪些文件/文件夹。
答案3
据我所知,没有。你可以连接类似Wireshark看看你是否可以在网络流量中找到一些东西来表明它在等待什么,但这有点小题大做,而且你不太可能找到任何东西。
答案4
观看流程探索器视频“200x 的情况”作者在其中展示了如何诊断包括挂起在内的几种故障排除情况。这也是 ctrl-scrolllock-scrolllock 强制崩溃可以帮助诊断的地方。