Bagikan melalui


Men-debug Aplikasi Layanan Secara Manual

Melampirkan secara manual ke aplikasi layanan setelah dimulai sama seperti men-debug proses mode pengguna yang sedang berjalan.

Gunakan alat TList dengan opsi /s untuk menampilkan ID proses (PID) dari setiap proses yang sedang berjalan dan layanan aktif di setiap proses.

Jika aplikasi layanan yang ingin Anda debug dikombinasikan dengan layanan lain dalam satu proses, Anda harus mengisolasinya sebelum men-debugnya. Untuk melakukan ini, lakukan prosedur yang dijelaskan dalam Mengisolasi Layanan. Di akhir prosedur ini, mulai ulang layanan.

Untuk menentukan PID baru layanan, terbitkan perintah Alat Konfigurasi Layanan (Sc.exe) berikut, di mana ServiceName adalah nama layanan:

sc queryex ServiceName 

Sekarang mulai WinDbg atau CDB dengan aplikasi layanan ini sebagai target. Ada tiga cara untuk melakukan ini: dengan menentukan PID dengan opsi -p, dengan menentukan nama yang dapat dieksekusi dengan opsi -pn (jika nama yang dapat dieksekusi unik), atau dengan menentukan nama layanan dengan opsi -psn.

Misalnya, jika proses SpoolSv.exe memiliki PID 651 dan berisi layanan bernama Spooler, tiga perintah berikut ini setara:

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

Setelah debugger dimulai, lanjutkan seperti yang Anda lakukan di sesi penelusuran kesalahan mode pengguna lainnya.