Используя ProcDump, чтобы получить дамп службы?

Кто-нибудь знает, возможно ли это / как использовать ProcDump для получения дампа службы Windows? Команда, которую я хочу выполнить, выглядит следующим образом:

ProcDump -e -mp -x myservice.exe mydump.dmp

Однако я не могу запустить службу из командной строки или сообщения отладчика. Кто-нибудь знает, есть ли способ обойти это?

1 ответ

Решение

Хорошо. После того, как я немного поигрался, я узнал, как это сделать, мне нужна была команда: Procdump -e -mp 14312 mydump.dmp, где 14312 - идентификатор процесса службы, это можно найти в диспетчере задач в службах. вкладка.

Если кто-то сталкивается с этим, я обычно запускаю:

procdump.exe -ma -i C:\Dumps

Это зарегистрирует procdump в качестве отладчика Just-in-Time (AeDebug) и создаст дамп для любого аварийного процесса в системе.

Я обнаружил, что "преобразование в широкую сеть" дает лучший результат по сравнению с настройкой дампа для конкретного имени процесса или PID.

Есть еще один вариант, который позволяет сбрасывать исключения даже при запуске службы Windows. С помощью "Параметры выполнения файла образа" вы можете настроить procdump как обслуживаемый отладчик.

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\{your service executable name. f.e. notepad.exe}" /v "Debugger" /t REG_SZ /d "{procdump path}\procdump -ma -accepteula -e 1 -t -n 10 -x {dumps output folder}" /f

Не забудьте заменить фигурные скобки своими значениями. Пожалуйста, проверьте значение параметров командной строки procdump, -ma, -e 1, -t, -n 10 здесь

Чтобы удалить procdump:

reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\{your service executable name. f.e. notepad.exe}" /va /f
Другие вопросы по тегам