Udostępnij przez


Ręczne debugowanie aplikacji usługi

Ręczne dołączanie do aplikacji usługi po jej uruchomieniu jest podobne do debugowania dowolnego procesu w trybie użytkownika.

Użyj narzędzia TList z opcją /s , aby wyświetlić identyfikator procesu (PID) każdego uruchomionego procesu i usług aktywnych w każdym procesie.

Jeśli aplikacja usługi, którą chcesz debugować, jest połączona z innymi usługami w jednym procesie, musisz ją odizolować przed debugowaniem. W tym celu wykonaj procedurę opisaną w sekcji Izolowanie usługi. Na końcu tej procedury uruchom ponownie usługę.

Aby określić nową nazwę PID usługi, wydaj następujące polecenie Service Configuration Tool (Sc.exe), gdzie ServiceName jest nazwą usługi:

sc queryex ServiceName 

Teraz uruchom WinDbg lub CDB, używając tę aplikację usługi jako obiekt docelowy. Istnieją trzy sposoby, aby to zrobić: określając identyfikator PID z opcją -p, określając nazwę pliku wykonywalnego za pomocą opcji -pn (jeśli nazwa pliku wykonywalnego jest unikatowa) lub określając nazwę usługi z opcją -psn.

Jeśli na przykład proces SpoolSv.exe ma piD 651 i zawiera usługę o nazwie Spooler, następujące trzy polecenia są równoważne:

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

Po uruchomieniu debugera przejdź tak, jak w każdej innej sesji debugowania w trybie użytkownika.