Cara debug layanan Windows

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 824344 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara untuk men-debug Windows layanan dengan menggunakan debugger WinDbg (windbg.exe). Untuk men-debug layanan Windows, Anda dapat melampirkan WinDbg debugger proses host layanan setelah layanan dimulai, atau Anda dapat mengkonfigurasi layanan untuk memulai dengan WinDbg debugger terpasang sehingga Anda dapat memecahkan masalah layanan-startup-terkait masalah. Artikel ini menjelaskan kedua metode ini.

Persyaratan

Ini Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
  • Layanan Windows
  • WinDbg Debugger

Melampirkan WinDbg debugger layanan setelah layanan mulai

Metode ini sangat mirip dengan metode yang dapat Anda gunakan untuk melampirkan debugger proses dan kemudian debug proses.

Menggunakan ID proses proses host layanan yang Anda inginkan untuk men-debug

  1. Untuk menentukan proses ID (PID) dari proses yang host layanan yang Anda inginkan untuk men-debug, gunakan salah satu metode berikut.
    • Metode 1: Gunakan pengatur tugas
      1. Klik kanan taskbar, dan kemudian klik Manajer Tugas. The Windows Task Manager dialog kotak akan muncul.
      2. Klik Proses tab Windows Task Manager kotak dialog.
      3. Di bawah Nama gambar, klik gambar nama proses host layanan yang Anda inginkan untuk debug. Catatan ID proses ini proses yang ditentukan oleh nilai yang sesuai PID lapangan.
    • Metode 2: Menggunakan tugas daftar Utility (tlist.exe)
      1. Klik Mulai, lalu klik Menjalankan. The Menjalankan kotak dialog akan muncul.
      2. Dalam Terbuka kotak, jenis cmd, lalu klik Oke.
      3. Pada prompt perintah, mengubah jalur direktori untuk mencerminkan lokasi tlist.exe file di komputer Anda.

        Catatan Berkas tlist.exe biasanya terletak di berikut direktori: C:\Program Files\Debugging Tools for Windows
      4. Pada prompt perintah, ketik tlist untuk daftar nama gambar dan proses id dari semua proses yang sedang berjalan di komputer Anda.

        Catatan Membuat catatan ID proses proses host layanan yang Anda ingin untuk debug.
  2. Pada prompt perintah, mengubah jalur direktori untuk mencerminkan lokasi windbg.exe file di komputer Anda.

    Catatan Jika prompt perintah tidak terbuka, ikuti langkah-langkah dan b metode 1. Berkas windbg.exe biasanya terletak di direktori berikut: C:\Program Files\Debugging Tools for Windows.
  3. Pada prompt perintah, ketik WinDbg ?pProcessID /g untuk melampirkan WinDbg debugger proses host layanan yang Anda inginkan untuk debug.

    Catatan ProcessID merupakan tempat bagi ID proses proses host layanan yang ingin Anda debug.

Menggunakan gambar nama proses host layanan yang Anda inginkan untuk men-debug

Anda dapat menggunakan metode ini hanya jika ada persis berjalan contoh dari proses yang host layanan yang Anda ingin menjalankan. Untuk melakukan ini, ikuti langkah berikut:
  1. Klik Mulai, lalu klikMenjalankan. The Menjalankan kotak dialog akan muncul.
  2. Dalam Terbuka kotak, jeniscmd, lalu klik Oke untuk membuka prompt perintah.
  3. Pada prompt perintah, mengubah jalur direktori untuk mencerminkan lokasi windbg.exe file di komputer Anda.

    Catatan Berkas windbg.exe biasanya terletak di berikut direktori: C:\Program Files\Debugging Tools for Windows.
  4. Pada prompt perintah, ketik WinDbg ?pnImageName /g untuk melampirkan WinDbg debugger proses host layanan yang Anda inginkan untuk debug.

    CatatanImageName merupakan tempat bagi gambar nama proses host layanan yang Anda inginkan untuk debug. The "-pn" opsi baris perintah menentukan yangImageName argumen baris perintah adalah nama gambar proses.

Mulai WinDbg debugger dan melampirkan ke proses host layanan yang Anda inginkan untuk men-debug

  1. Mulai Windows Explorer.
  2. Mencari berkas windbg.exe pada komputer Anda.

    Catatan Berkas windbg.exe biasanya terletak di berikut direktori: C:\Program Files\Debugging Tools for Windows
  3. Jalankan file windbg.exe bersama-sama dengan /g switch baris perintah untuk memulai WinDbg debugger. The /g saklar baris perintah memungkinkan proses dilacak untuk melanjutkan setelah istirahat point ditetapkan.
  4. Pada Berkas menu, klik Melampirkan untuk Proses untuk menampilkan Melampirkan ke proses dialog kotak.
  5. Klik untuk memilih node yang sesuai dengan proses itu host layanan yang ingin Anda debug, dan kemudian klikOke.
  6. Di kotak dialog yang muncul, klik Yauntuk menyimpan informasi dasar kerja. Pemberitahuan bahwa Anda sekarang dapat men-debug kode yang dibongkar layanan.

Mengkonfigurasi layanan untuk memulai dengan WinDbg debugger terpasang

Anda dapat menggunakan metode ini untuk men-debug layanan jika Anda ingin memecahkan masalah layanan-startup-terkait.
  1. Mengkonfigurasi opsi "Gambar File eksekusi". Untuk melakukan hal ini, Gunakan salah satu metode berikut:
    • Metode 1: Menggunakan Editor bendera Global (gflags.exe)
      1. Mulai Windows Explorer.
      2. Mencari berkas gflags.exe pada Anda komputer.

        Catatan Berkas gflags.exe biasanya terletak di berikut direktori: C:\Program Files\Debugging Tools for Windows.
      3. Jalankan file gflags.exe untuk memulai bendera Global Editor.
      4. Dalam Nama File gambar kotak teks, Ketik nama gambar dari proses yang host layanan yang ingin Anda debug. Sebagai contoh, jika Anda ingin men-debug sebuah layanan yang di-host oleh proses yang memiliki MyService.exe sebagai nama gambar, jenis MyService.exe.
      5. Di bawah Tujuan, klik untuk memilih The File gambar pilihan pilihan.
      6. Di bawah Gambar Debugger pilihan, Klik untuk memilih Debugger kotak centang.
      7. Dalam Debugger kotak teks, ketik lintasan penuh debugger yang ingin Anda gunakan. Sebagai contoh, jika Anda ingin menggunakan WinDbg debugger untuk debug layanan, Anda dapat mengetik path lengkap yang mirip dengan berikut: C: Files\debugging Tools for Windows\windbg.exe
      8. Klik Menerapkan, lalu klik Oke untuk keluar dari Editor bendera Global.
    • Metode 2: Gunakan Peninjau Suntingan Registri
      1. Klik Mulai, lalu klik Menjalankan. The Menjalankan kotak dialog akan muncul.
      2. Dalam Terbuka kotak, jenis regedit, lalu klik Oke untuk memulai Peninjau Suntingan Registri.
      3. Penting Bagian ini, metode, atau tugas yang memuat langkah-langkah yang memberitahu Anda bagaimana memodifikasi registri. Namun, masalah yang serius dapat terjadi apabila Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah tersebut dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasi. Kemudian, Anda dapat memulihkan registri apabila terjadi masalah. Untuk informasi selengkapnya tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
        322756 Cara membuat cadangan dan memulihkan registri di Windows


        Pada Peninjau Suntingan Registri, Cari, dan kemudian klik kanan subkunci registri berikut:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File eksekusi pilihan
      4. Arahkan ke Baru, lalu klik Kunci. Di jendela kiri dari Peninjau Suntingan Registri, perhatikan bahwa Kunci baru # 1 (nama subkunci registri baru) yang dipilih untuk mengedit.
      5. Jenis ImageName untuk menggantikan Kunci baru # 1, kemudian tekan MASUKKAN.

        Catatan ImageName merupakan tempat bagi gambar nama proses host layanan yang Anda inginkan untuk debug. Untuk contoh, jika Anda ingin men-debug sebuah layanan yang di-host oleh proses yang telah MyService.exe sebagai nama gambar, jenis MyService.exe.
      6. Klik kanan subkunci registri yang Anda buat dalam langkah e.
      7. Arahkan ke Baru, lalu klik Nilai Untai. Dalam pane kanan dari Registry Editor, pemberitahuan yang Nilai baru # 1, nama entri registri baru, adalah dipilih.
      8. Ganti Nilai baru # 1 dengan Debugger, kemudian tekan ENTER.
      9. Klik kanan Debugger registri Catatan yang dibuat di langkah h, dan kemudian klik Memodifikasi. The Edit String kotak dialog akan muncul.
      10. Dalam Data nilai kotak teks, ketik DebuggerPath, lalu klik Oke.

        Catatan DebuggerPath merupakan tempat bagi path lengkap debugger yang ingin Anda gunakan. Sebagai contoh, jika Anda ingin menggunakan WinDbg debugger untuk debug layanan, Anda dapat mengetik penuh jalan yang sama dengan berikut:
        C:\Progra~1\Debugg~1\windbg.exe
  2. Untuk jendela debugger muncul di desktop Anda, dan untuk berinteraksi dengan debugger, membuat layanan interaktif. Jika Anda tidak membuat layanan interaktif, debugger akan mulai tetapi Anda tidak dapat melihat dan Anda tidak dapat mengeluarkan perintah. Untuk membuat layanan interaktif, gunakan salah satu metode berikut:
    • Metode 1: Menggunakan konsol layanan
      1. Klik Mulai, dan kemudian arahkan ke Program.
      2. Pada Program menu, titik Alat administratif, lalu klik Layanan. The Layanan konsol muncul.
      3. Di panel kanan Layanankonsol, klik kanan ServiceName, kemudian klik Properti.

        Catatan ServiceName merupakan tempat bagi nama layanan yang Anda inginkan untuk debug.
      4. Pada Logon tab, klik untuk memilih The Memungkinkan layanan untuk berinteraksi dengan desktop kotak centang di bawah Account sistem lokal, lalu klik Oke.
    • Metode 2: Gunakan Peninjau Suntingan Registri
      1. Pada Peninjau Suntingan Registri, Cari, dan kemudian klik subkunci registri berikut:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        Catatan Ganti ServiceName dengan nama layanan yang Anda inginkan untuk debug. Sebagai contoh, jika Anda ingin men-debug sebuah layanan bernama MyService, Cari dan klik kunci registri berikut:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. Di bawah Nama bidang dalam pane kanan dari Peninjau Suntingan Registri, klik kanan Jenis, lalu klik Memodifikasi. The Edit nilai DWORD kotak dialog muncul.
      3. Mengubah teks dalam Data nilaikotak teks untuk hasil operasi OR biner dengan nilai biner teks saat ini dan nilai biner, 0x00000100, sebagai Operand dua. Biner nilai, 0x00000100, sesuai dengan SERVICE_INTERACTIVE_PROCESS konstan yang didefinisikan dalam WinNT.h header file di komputer Anda. Konstanta ini menentukan layanan interaktif di alam.
  3. Ketika layanan dimulai, layanan berkomunikasi untuk Service Control Manager berapa lama layanan harus memiliki untuk memulai (time-out periode untuk layanan). Jika Service Control Manager tidak menerima "layanan dimulai" pemberitahuan dari layanan dalam periode waktu habis, Service Control Manager berakhir proses host layanan. Ini periode waktu habis adalah biasanya kurang dari 30 detik. Jika Anda tidak menyesuaikan ini periode waktu habis, Service Control Manager berakhir proses dan melampirkan debugger ketika Anda mencoba untuk men-debug. Untuk menyesuaikan waktu-habis ini periode, ikuti langkah berikut:
    1. Pada Peninjau Suntingan Registri, Cari, dan kemudian klik kanan subkunci registri berikut:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. Arahkan ke Baru, lalu klik Nilai DWORD. Dalam pane kanan Registry Editor, perhatikan bahwa Nilai baru # 1 (nama entri registri baru) dipilih untuk mengedit.
    3. Jenis ServicesPipeTimeout untuk menggantikan Nilai baru # 1, kemudian tekan MASUKKAN.
    4. Klik kanan ServicesPipeTimeoutentri registri yang Anda dibuat di langkah c, kemudian klik Memodifikasi. The Edit nilai DWORD kotak dialog muncul.
    5. Dalam Data nilai kotak teks, ketik TimeoutPeriod, lalu klik Oke

      Catatan TimeoutPeriod adalah simbol untuk nilai periode waktu-habis (dalam milidetik) bahwa Anda ingin mengatur untuk layanan. Sebagai contoh, jika Anda ingin mengatur waktu-habis periode 24 jam (86400000 milidetik), jenis 86400000.
    6. Mulai ulang komputer. Anda harus me-restart komputer untuk Service Control Manager untuk menerapkan perubahan ini.
  4. Mulai layanan Windows Anda. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Klik Mulai, dan kemudian arahkan ke Program.
    2. Pada Program menu, titik Alat administratif, lalu klik Layanan. The Layanan konsol muncul.
    3. Di panel kanan Layanankonsol, klik kanan ServiceName, kemudian klik Mulai.

      Catatan ServiceName merupakan tempat bagi nama layanan yang Anda inginkan untuk debug.

Pemecahan Masalah

Sebelum Anda mencoba untuk men-debug sebuah layanan di seluruh jaringan, pastikan bahwa simbol-simbol dan file sumber yang menggunakan layanan dapat diakses dari komputer di mana layanan akan berjalan. Untuk melakukannya, gunakan salah satu dari metode berikut ini:
  • Berikan izin akses baca setidaknya kepada semua orang untuk folder pada Anda komputer yang berisi simbol-simbol dan file sumber yang menggunakan layanan.
  • Salin file sumber yang menggunakan layanan dan simbol ini ke komputer di mana layanan akan menjalankan.

REFERENSI

Untuk men-download alat dan utilitas yang disebutkan pada artikel ini, kunjungi Web site Microsoft berikut:
Alat debugging untuk Windows: Ikhtisar
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Untuk informasi lebih lanjut, kunjungi berikut Microsoft Developer Situs Web Network (MSDN):
WinDbg debugger
http://www.Microsoft.com/whdc/DevTools/debugging/installx86.mspx
Layanan
http://msdn2.Microsoft.com/en-us/library/ms685141.aspx
Menggunakan bendera Global utilitas
http://msdn2.Microsoft.com/en-us/library/ms792858.aspx

Properti

ID Artikel: 824344 - Kajian Terakhir: 07 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
Kata kunci: 
kbimghlp kbregistry kbservice kbdebug kbmisctools kbhowtomaster kbmt KB824344 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:824344

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com