Уничтожение процессов в Windows 7 - PullRequest
3 голосов
/ 25 августа 2010

Я отлаживаю плагины в Windows 7 и, конечно, хост плагина (Cubase5.exe) иногда вылетает из-за ошибок в плагине. На XP или Vista я всегда мог сразу же перезапустить его и продолжить работу. Но в Windows 7, хотя Cubase, кажется, закрывается, он все еще виден в диспетчере задач, и я не могу его убить никакими средствами. Через минуту или две он исчезает сам по себе. В то же время я не могу работать, потому что библиотека плагина все еще заблокирована процессом.

Кто-нибудь знает, почему это происходит в 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."

Я пытался следовать инструкциям здесь , но, похоже, это возможно только в том случае, если я подключу второй компьютер к компьютеру для удаленной отладки.

Ответы [ 5 ]

4 голосов
/ 23 мая 2011

Я наконец нашел решение, используя эту статью:

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

Для этого потребовалось установить средства отладки Windows для Windows (красивое имя) и LiveKd, но, выполнив шаги, описанныеЯ смог отследить, какой драйвер вызывал зависание процесса: он оказался 64-битным драйвером для контроллера M-Audio Oxygen 8 V2, который я использую.К сожалению, обновление драйвера недоступно.

В любом случае, если кто-то сталкивается с подобной проблемой, это способ ее решения.

1 голос
/ 26 августа 2010

Если у вас включен отчет об ошибках, возможно, что в werfault.exe открыт Cubase для записи мини-дампов в целях отчетов о сбоях.

Это всего лишь удар в темноте, но это может быть вашей проблемой.

1 голос
/ 25 августа 2010

Вы пробовали Process Explorer от Марка Руссиновича? Это действительно полезно для "убийства":)

0 голосов
/ 27 сентября 2016

вы можете завершить процесс, под которым работает служба. Вы можете найти этот процесс, перейдя на вкладку «Службы» диспетчера задач, щелкнув правой кнопкой мыши и выбрав «Перейти к процессу» (, нажмите кнопку «Показать процессы от всех пользователей». ). Обратите внимание, что один процесс может содержать несколько служб (особенно если это svchost.exe), и завершение процесса уничтожит все эти службы. Кроме того, это нечистый выход, который может привести к повреждению данных в зависимости от того, что службы делали, когда вы его уничтожали.

В зависимости от того, какую конкретную службу вы пытаетесь остановить, может существовать более чистый способ симуляции сбоя.

0 голосов
/ 25 августа 2010

Вы можете попробовать Process Monitor проверить, что делает Cubase. Установите фильтр так, чтобы все с именем процесса, содержащим «cubase», было записано. Возможно, вы столкнулись с проблемой тайм-аута, когда Cubase хочет выйти.

...