Bagikan melalui


Men-debug Aplikasi Layanan Secara Otomatis

Debugger dapat diluncurkan secara otomatis saat aplikasi layanan dimulai. Atau, ini dapat diluncurkan secara otomatis ketika aplikasi layanan menemukan pengecualian atau menjalankan perintah DebugBreak. Jika Anda telah memilih salah satu metode ini, topik ini menjelaskan cara melanjutkan. Jika Anda tidak yakin metode mana yang harus dipilih, lihat Memilih Metode Terbaik.

Kemudian gunakan prosedur berikut:

  1. Lakukan salah satu langkah persiapan berikut:

    • Jika Anda berencana untuk men-debug aplikasi layanan sejak awal, termasuk kode inisialisasinya, ikuti prosedur yang dijelaskan dalam Mengaktifkan Debugging Kode Inisialisasi. Atau, jika Anda ingin aplikasi layanan masuk ke debugger saat mengalami crash atau mengalami pengecualian, ikuti prosedur yang dijelaskan dalam Mengaktifkan Aplikasi Layanan untuk Masuk ke Debugger.
    • Untuk memastikan bahwa aplikasi layanan akan memungkinkan debugger berjalan dengan benar, lakukan prosedur yang dijelaskan dalam Menyesuaikan Batas Waktu Aplikasi Layanan.
    • Jika layanan dikombinasikan dengan layanan lain dalam satu proses SvcHost, lakukan prosedur yang dijelaskan dalam Mengisolasi Layanan.
  2. Jika layanan sudah berjalan, Anda harus memulai ulang agar perubahan ini berlaku. Kami menyarankan agar Anda memulai ulang Windows itu sendiri, untuk menghapus efek apa pun dari layanan yang sedang berjalan. Jika Anda tidak ingin memulai ulang Windows, gunakan perintah berikut, di mana ServiceName adalah nama layanan:

    net stop ServiceName 
    net start ServiceName 
    
  3. Jika Anda telah memilih untuk men-debug kode inisialisasi aplikasi layanan, ketika layanan dimulai, debugger diluncurkan dan dilampirkan ke aplikasi layanan.

    Jika Anda telah memilih untuk membiarkan debugger dipicu oleh pengecualian, aplikasi layanan dijalankan secara normal sampai menemukan pengecualian atau menjalankan fungsi DebugBreak. Pada titik ini, debugger diluncurkan dan dilampirkan ke aplikasi layanan.

  4. Langkah berikutnya tergantung pada baris perintah debugger yang Anda tentukan selama langkah 1:

    • Jika Anda menentukan debugger tanpa opsi jarak jauh, debugger ini diluncurkan dan jendelanya menjadi terlihat.
    • Jika Anda menentukan NTSD dengan opsi -server dan -noio, NTSD diluncurkan tanpa jendela konsol. Anda kemudian dapat terhubung ke sesi penelusuran kesalahan dari komputer lain dengan memulai debugger mode pengguna dengan parameter -remote. Untuk petunjuknya, lihat Mengaktifkan Klien Debugging.
    • Jika Anda menentukan NTSD dengan opsi -d, NTSD diluncurkan tanpa jendela konsol. Anda kemudian dapat menghubungkan ke sesi debugging dengan menggunakan debugger kernel yang berjalan di komputer lain. Untuk petunjuknya, lihat Mengontrol debugger User-Mode dari Debugger Kernel.
    • Jika Anda menentukan NTSD dengan opsi -ddefer dan -server, NTSD diluncurkan tanpa jendela konsol. Anda kemudian dapat terhubung ke sesi debug dengan menggunakan debugger kernel serta debugger remote mode pengguna, yang beroperasi di komputer yang berbeda dari layanan (tetapi bisa saja keduanya di komputer yang sama). Untuk petunjuknya, lihat Menggabungkan Metode Ini dengan Penelusuran Kesalahan Jarak Jauh.
  5. Saat debugger dimulai, layanan berhenti sejenak pada titik henti proses awal, pengecualian, atau perintah DebugBreak. Ini memungkinkan Anda untuk memeriksa status aplikasi layanan saat ini, mengatur titik henti, dan membuat pilihan konfigurasi lain yang diinginkan.

  6. Gunakan g (Go) atau perintah eksekusi lain untuk melanjutkan eksekusi aplikasi layanan.

Lihat juga

fungsi DebugBreak