Поделиться через


Отладка приложения-службы вручную

Ручное присоединение к служебному приложению после его запуска подобно отладке любого запущенного процесса в пользовательском режиме.

Используйте средство TList с параметром/s , чтобы отобразить идентификатор процесса (PID) каждого выполняемого процесса и службы, активные в каждом процессе.

Если приложение-служба, которое требуется выполнить отладку, объединяется с другими службами в одном процессе, необходимо изолировать его перед отладкой. Для этого выполните процедуру, описанную в разделе "Изоляция службы". В конце этой процедуры перезапустите службу.

Чтобы определить новый идентификатор службы, выполните следующую команду средства настройки службы (Sc.exe), где Имя_ службы — имя службы:

sc queryex ServiceName 

Теперь запустите WinDbg или CDB с этим приложением-службой в качестве целевого объекта. Это можно сделать тремя способами: указав идентификатор процесса с опцией -p, указав имя исполняемого файла с опцией -pn (если имя исполняемого файла уникально), или указав имя службы с опцией -psn.

Например, если процесс SpoolSv.exe имеет PID 651 и содержит службу Spooler, следующие три команды эквивалентны:

windbg -p 651 [AdditionalOptions] 
windbg -pn spoolsv.exe [AdditionalOptions] 
windbg -psn spooler [AdditionalOptions] 

После запуска отладчика перейдите к любому другому сеансу отладки в пользовательском режиме.