我的这个进程在 Windows 2003 上挂起,但没有任何线索表明是什么原因导致挂起。操作系统仍可运行,但进程本身无法终止,需要重新启动才能消失。
我读到这很可能是驱动程序问题,但我需要更精确地查明发生了什么,以便更换有故障的驱动程序/硬件或其他什么。
我尝试了 Process Explorer、ProcDump、ADPlus、UserDump:所有试图触碰该进程的东西也都挂起了。
关于如何确定导致进程挂起的原因,有什么建议吗?
更新
澄清一下我的问题:我不想知道如何终止该进程,或者它为什么会挂起。你不可能回答这个问题。
我正在寻求有关如何检查该过程并查看其挂起位置的建议,考虑到我上面列出的工具也挂起了。
答案1
进程无法终止的唯一原因是该进程正在等待 Windows 内核的某些操作。由于 Windows 永远不会让您完全控制操作系统,因此在 Windows 完成进程调用的任何函数之前,您无法终止该进程。
这通常是由驱动程序问题引起的,但也可能是由 Windows 内核中的许多其他问题引起的,尤其是在 8 年前的操作系统上。我唯一的(糟糕的)建议是:最好的办法是更新所有你能更新的东西:驱动程序、框架软件、Windows 更新、Java 以及你能找到的任何其他东西。
答案2
虽然可能性不大,但它让我想起了 XP/2003 曾经存在的僵尸控制台窗口错误;但在 2003 年的 SP2 中已修复,并且实际上仅适用于在 Visual Studio 中调试的进程,因此它可能不适用于您。