在Windows 7上杀死进程

时间:2010-08-25 08:11:12

标签: windows-7 kill

我正在调试Windows 7上的插件,当然插件主机(Cubase5.exe)偶尔会因为插件中的错误而崩溃。在XP或Vista上,我总是可以立即重启它并继续工作。但是在Windows 7上,即使Cubase似乎关闭,它仍然可以在任务管理器中看到,我无论如何都无法杀死它。一两分钟后,它会自动消失。与此同时,我无法工作,因为插件DLL仍然被进程锁定。

有谁知道为什么会在Windows 7上发生这种情况?我已经尝试过禁用自动错误报告,但这没有帮助。我尝试将cdb附加到Cubase,但我得到了:

Cannot debug pid 5252, NTSTATUS 0xC0000001
    "{Operation Failed}  The requested operation was unsuccessful."
Debuggee initialization failed, NTSTATUS 0xC0000001
    "{Operation Failed}  The requested operation was unsuccessful."

我尝试按照说明here进行操作,但只有将第二台计算机连接到计算机以远程调试时才会出现这种情况。

5 个答案:

答案 0 :(得分:4)

我终于找到了解决方案,使用了这篇文章:

http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

这需要安装适用于Windows的Windows调试工具(漂亮的名称)和LiveKd,但是按照概述的步骤,我能够跟踪导致进程挂起的驱动程序:它原来是64位驱动程序我正在使用的M-Audio Oxygen 8 V2控制器。遗憾的是,没有可用的驱动程序更新。

无论如何,如果有人遇到类似问题,这就是解决问题的方法。

答案 1 :(得分:1)

Mark Russinovich试过Process Explorer吗?它对于“杀戮”非常有用:)

答案 2 :(得分:1)

如果您启用了错误报告,则werfault.exe可能会打开Cubase以编写一个minidump用于崩溃报告。

这只是在黑暗中刺伤但可能是你的问题。

答案 3 :(得分:0)

您可以尝试的一件事是检查 Process Monitor Cubase正在做什么。设置过滤器,以便记录包含“cubase”的进程名称的所有内容。当Cubase想退出时,你可能会面临一些超时问题。

答案 4 :(得分:0)

您可以结束服务运行的进程。您可以通过转到任务管理器的“服务”选项卡,右键单击并选择“转至处理”(,您需要单击“显示所有用户的处理”按钮。)来查找此过程。请注意,一个进程可能托管多个服务(特别是如果它是svchost.exe),并且结束该进程将终止所有这些服务。此外,这是一个不干净的退出,并可能导致数据损坏,具体取决于您杀死它时服务的作用。

根据您尝试停止的具体服务,可能会有更简洁的方法来模拟失败。