Windows hizmetlerinde nasıl hata ayıklanır

Makale çevirileri Makale çevirileri
Makale numarası: 824344 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

Bu adım adım makalede, WinDbg hata ayıklayıcısı (windbg.exe) kullanılarak bir Windows hizmetinde nasıl hata ayıklanacağı açıklanır. Bir Windows hizmetinde hata ayıklamak için, hizmet başlatıldıktan sonra WinDbg hata ayıklayıcısını, hizmeti barındıran işleme ekleyebilir veya hizmeti başlatma ile ilgili sorunları gidermek amacıyla hizmeti WinDbg hata ayıklayıcısı ekli olarak başlatılacak şekilde yapılandırabilirsiniz. Bu makalede her iki yöntem de açıklanır.

Gereksinimler

Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Windows Hizmetleri
  • WinDbg Hata Ayıklayıcısı

Hizmet başlatıldıktan sonra WinDbg hata ayıklayıcısını hizmete ekleme

Bu yöntem, hata ayıklayıcısını bir işleme ekleyip işlemde hata ayıklamak için kullanabileceğiniz yönteme benzemektedir.

Hata ayıklamak istediğiniz hizmeti barındıran işlemin işlem kimliğini kullanma

  1. Hata ayıklamak istediğiniz hizmeti barındıran işlemin işlem kimliğini (PID) belirlemek için, aşağıdaki yöntemlerden birini kullanın.
    • Yöntem 1: Görev Yöneticisi'ni Kullanma
      1. Görev çubuğunu sağ tıklatın ve sonra da Görev Yöneticisi'ni tıklatın. Windows Görev Yöneticisi iletişim kutusu görüntülenir.
      2. Windows Görev Yöneticisi iletişim kutusundaki İşlemler sekmesini tıklatın.
      3. Yansıma Adı altında, hata ayıklamak istediğiniz hizmeti barındıran işlemin görüntü adını tıklatın. Bu işlem için, ilgili PID alanının değeriyle belirtilen işlem kimliğini not alın.
    • Yöntem 2: Görev Listesi Yardımcı Programını (tlist.exe) Kullanma
      1. Başlat'ı ve ardından Çalıştır'ı tıklatın. Çalıştır iletişim kutusu görüntülenir.
      2. kutusuna cmd yazın ve Tamam'ı tıklatın.
      3. Komut isteminde, dizin yolunu bilgisayarınızdaki tlist.exe dosyasının konumunu gösterecek şekilde değiştirin.

        Not Tlist.exe dosyası, genellikle şu dizinde bulunur: C:\Program Files\Debugging Tools for Windows
      4. Komut istemine tlist yazıp, bilgisayarınızda çalışmakta olan tüm işlemlerin görüntü adlarını ve işlem kimliklerini listeleyin.

        Not Hata ayıklamak istediğiniz hizmeti barındıran işlemin işlem kimliğini not alın.
  2. Komut isteminde, dizin yolunu bilgisayarınızdaki windbg.exe dosyasının konumunu gösterecek şekilde değiştirin.

    Not Komut istemi açık değilse, Yöntem 1'deki a ve b adımlarını izleyin. Windbg.exe dosyası genellikle şu dizinde bulunur: C:\Program Files\Debugging Tools for Windows.
  3. Komut istemine windbg –p İşlemKimliği yazıp, WinDbg hata ayıklayıcısını, hata ayıklamak istediğiniz hizmeti barındıran işleme ekleyin.

    Not İşlemKimliği, hata ayıklamak istediğiniz hizmeti barındıran işlemin işlem kimliği için bir yer tutucudur.

Hata ayıklamak istediğiniz hizmeti barındıran işlemin görüntü adını kullanma

Bu yöntemi, çalıştırmak istediğiniz hizmeti barındıran işlemin yalnızca tek bir çalışan örneği varsa kullanabilirsiniz. Bunu yapmak için şu adımları izleyin:
  1. Başlat'ı ve ardından Çalıştır'ı tıklatın. Çalıştır iletişim kutusu görüntülenir.
  2. kutusuna, cmd yazın ve Tamam'ı tıklatıp komut istemini açın.
  3. Komut isteminde, dizin yolunu bilgisayarınızdaki windbg.exe dosyasının konumunu gösterecek şekilde değiştirin.

    Not Windbg.exe dosyası, genellikle şu dizinde bulunur: C:\Program Files\Debugging Tools for Windows.
  4. Komut istemine windbg –pn GörüntüAdı yazıp, WinDbg hata ayıklayıcısını, hata ayıklamak istediğiniz hizmeti barındıran işleme ekleyin.

    Not Görüntü adı, hata ayıklamak istediğiniz hizmeti barındıran işlemin görüntü adı için bir yer tutucudur. "-pn" komut satırı seçeneği, GörüntüAdı komut satırı bağımsız değişkeninin, bir işlemin görüntü adı olduğunu belirtir.

WinDbg hata ayıklayıcısını başlatma ve hata ayıklamak istediğiniz hizmeti barındıran işleme ekleme

  1. Windows Gezgini'ni başlatın.
  2. Bilgisayarınızdaki windbg.exe dosyasını bulun.

    Not Windbg.exe dosyası, genellikle şu dizinde bulunur: C:\Program Files\Debugging Tools for Windows
  3. Windbg.exe dosyasını çalıştırıp WinDbg hata ayıklayıcısını başlatın.
  4. File (Dosya) menüsünde Attach to a Process'i (İşleme Ekle) tıklatıp Attach to Process iletişim kutusunu görüntüleyin.
  5. Hata ayıklamak istediğiniz hizmeti barındıran işleme karşılık gelen düğümü tıklatıp seçin ve sonra da Tamam'ı tıklatın.
  6. Görüntülenen iletişim kutusunda, Evet'i tıklatıp temel çalışma alanı bilgilerini kaydedin. Hizmetinizin derlemesi kaldırılmış kodunda artık hata ayıklayabildiğinize dikkat edin.

Hizmeti WinDbg hata ayıklayıcısı ekli olarak başlatılacak şekilde yapılandırma

Bu yöntemi, hizmeti başlatma ile ilgili sorunları gidermek istiyorsanız hizmetlerde hata ayıklamak için kullanabilirsiniz.
  1. "Görüntü Dosyası Yürütme" seçeneklerini yapılandırın. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
    • Yöntem 1: Genel Bayrak Düzenleyicisi'ni (gflags.exe) Kullanma
      1. Windows Gezgini'ni başlatın.
      2. Bilgisayarınızdaki gflags.exe dosyasını bulun.

        Not Gflags.exe dosyası, genellikle şu dizinde bulunur: C:\Program Files\Debugging Tools for Windows.
      3. Gflags.exe dosyasını çalıştırıp Genel Bayrak Düzenleyicisi'ni başlatın.
      4. Image File Name (Görüntü Dosyası Adı) metin kutusuna, hata ayıklamak istediğiniz hizmeti barındıran işlemin görüntü adını yazın. Örneğin, MyService.exe görüntü adını kullanan bir işlem tarafından barındırılan bir hizmette hata ayıklamak istiyorsanız, MyService.exe yazın.
      5. Destination (Hedef) altında, Image File Options (Görüntü Adı Seçenekleri) seçeneğini tıklatıp işaretleyin.
      6. Image Debugger Options (Görüntü Hata Ayıklayıcısı Seçenekleri) altında, Debugger (Hata Ayıklayıcısı) onay kutusunu tıklatıp seçin.
      7. Debugger metin kutusuna, kullanmak istediğiniz hata ayıklayıcısının tam yolunu yazın. Örneğin, bir hizmette hata ayıklamak için WinDbg hata ayıklayıcısını kullanmak istiyorsanız, aşağıdakine benzer bir tam yol yazabilirsiniz: C:\Program Files\Debugging Tools for Windows\windbg.exe
      8. Apply'ı (Uygula) ve OK'i (Tamam) tıklatın, sonra da Genel Bayrak Düzenleyicisi'nden çıkın.
    • Yöntem 2: Kayıt Defteri Düzenleyicisi'ni Kullanma
      1. Başlat'ı ve ardından Çalıştır'ı tıklatın. Çalıştır iletişim kutusu görüntülenir.
      2. kutusuna regedit yazın ve Tamam'ı tıklatıp Kayıt Defteri Düzenleyicisi'ni başlatın.
      3. Uyarı Kayıt Defteri Düzenleyicisi'ni veya başka bir yöntemi kullanarak kayıt defterini hatalı olarak değiştirirseniz önemli sorunlar oluşabilir. Bu sorunlar, işletim sisteminizi yeniden yüklemenizi gerektirebilir. Microsoft bu sorunların çözülebileceğini garanti etmemektedir. Kayıt defterini değiştirmek kendi sorumluluğunuzdadır.

        Kayıt Defteri Düzenleyicisi'nde, aşağıdaki kayıt defteri alt anahtarını bulup sağ tıklatın:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
      4. Yeni'nin üzerine gelin ve Anahtar'ı tıklatın. Kayıt Defteri Düzenleyicisi'nin sol bölmesinde, Yeni Anahtar #1 (yeni bir kayıt defteri alt anahtarının adı) öğesinin düzenleme için seçili olduğuna dikkat edin.
      5. Yeni anahtar #1 yerine, GörüntüAdı yazın ve ENTER tuşuna basın

        Not Görüntü adı, hata ayıklamak istediğiniz hizmeti barındıran işlemin görüntü adı için bir yer tutucudur. Örneğin, MyService.exe görüntü adını kullanan bir işlem tarafından barındırılan bir hizmette hata ayıklamak istiyorsanız, MyService.exe yazın.
      6. Adım e'de oluşturduğunuz kayıt defteri alt anahtarını sağ tıklatın.
      7. Yeni'nin üzerine gelin ve sonra Dize Değeri'ni tıklatın. Kayıt Defteri Düzenleyicisi'nin sağ bölmesinde, yeni kayıt defteri girdisinin adı olan Yeni Değer #1 öğesinin düzenleme için seçili olduğuna dikkat edin.
      8. Yeni Değer #1 yerine Debugger yazın ve sonra da ENTER tuşuna basın.
      9. Adım h'de oluşturduğunuz Debugger kayıt defteri girdisini sağ tıklatın ve ardından Değiştir'i tıklatın. Dize Düzenle iletişim kutusu görüntülenir.
      10. Değer verisi metin kutusuna HataAyıklayıcısıYolu yazın ve Tamam'ı tıklatın.

        Not HataAyıklayıcısıYolu, kullanmak istediğiniz hata ayıklayıcısının tam yolu için bir yer tutucudur. Örneğin, bir hizmette hata ayıklamak için WinDbg hata ayıklayıcısını kullanmak istiyorsanız, şuna benzer bir tam yolu yazabilirsiniz:
        C:\Progra~1\Debugg~1\windbg.exe
  2. Hata ayıklayıcısı penceresinin masaüstünüzde görünmesini sağlamak ve hata ayıklayıcısıyla etkileşim kurmak için, hizmetinizi etkileşimli yapın. Hizmetinizi etkileşimli yapmazsanız, hata ayıklayıcısı başlatılmasına karşın onu göremez ve komut yayımlayamazsınız. Hizmetinizi etkileşimli yapmak için aşağıdaki yöntemlerden birini kullanın:
    • Yöntem 1: Hizmetler konsolunu kullanma
      1. Başlat'ı tıklatın ve Programlar'ın üzerine gidin.
      2. Programlar menüsünde, Yönetimsel Araçlar'ın üzerine gidin ve Hizmetler'i tıklatın. Hizmetler konsolu görüntülenir.
      3. Hizmetler konsolunun sağ bölmesinde, HizmetAdı'nı sağ tıklatın ve ardından Özellikler'i tıklatın.

        Not HizmetAdı, hata ayıklamak istediğiniz hizmetin adı için bir yer tutucudur.
      4. Oturum Aç sekmesinde, Yerel Sistem hesabı altında Hizmetin masaüstü ile etkileşimine izin ver onay kutusunu tıklatıp seçin ve sonra da Tamam'ı tıklatın.
    • Yöntem 2: Kayıt Defteri Düzenleyicisi'ni Kullanma
      1. Kayıt Defteri Düzenleyicisi'nde, aşağıdaki kayıt defteri alt anahtarını bulun ve tıklatın:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        NotHizmetAdı yerine, hata ayıklamak istediğiniz hizmetin adını yazın. Örneğin, MyService adlı bir hizmette hata ayıklamak istiyorsanız, aşağıdaki kayıt defteri anahtarını bulun ve tıklatın:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. Kayıt Defteri Düzenleyicisi'nin sağ bölmesindeki Ad alanı altında, Tür öğesini sağ tıklatın ve sonra da Değiştir'i tıklatın. DWORD Değerini Düzenle iletişim kutusu görüntülenir.
      3. Değer verisi metin kutusundaki metin yerine, iki işlenen olarak geçerli metnin ikili değeri ile 0x00000100 ikili değerinin kullanıldığı ikili OR işleminin sonucunu yazın. 0x00000100 ikili değeri, bilgisayarınızdaki WinNT.h üstbilgi dosyasında tanımlı olan SERVICE_INTERACTIVE_PROCESS sabit değerine karşılık gelir. Bu sabit değer, bir hizmetin normalde etkileşimli olduğunu belirtir.
  3. Bir hizmet başlatıldığında, ne kadar süre içinde başlatılması gerektiğini (hizmetin zaman aşımı süresini) belirtmek üzere Hizmet Denetim Yöneticisi ile iletişim kurar. Hizmet Denetim Yöneticisi, bu zaman aşımı süresi boyunca hizmetten bir "hizmet başlatıldı" bildirimi almazsa, hizmeti barındıran işlemi sonlandırır. Bu zaman aşımı süresi genelde 30 saniyeden daha kısadır. Zaman aşımı süresini ayarlamazsanız, hata ayıklamaya çalıştığınız sırada Hizmet Denetim Yöneticisi, işlemi ve ekli hata ayıklayıcısını sonlandırır. Zaman aşımı süresini ayarlamak için şu adımları izleyin:
    1. Kayıt Defteri Düzenleyicisi'nde, aşağıdaki kayıt defteri alt anahtarını bulup sağ tıklatın:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. Yeni'nin üzerine gidin ve sonra DWORD Değeri'ni tıklatın. Kayıt Defteri Düzenleyicisi'nin sağ bölmesinde, Yeni Değer #1 öğesinin (yeni kayıt defteri girdisinin adı) düzenleme için seçili olduğuna dikkat edin.
    3. Yeni Değer #1 yerine, ServicesPipeTimeout yazın ve ENTER tuşuna basın
    4. Adım c'de oluşturduğunuz ServicesPipeTimeout kayıt defteri girdisini sağ tıklatın ve ardından Değiştir'i tıklatın. DWORD Değerini Düzenle iletişim kutusu görüntülenir.
    5. Değer verisi metin kutusuna ZamanAşımıSüresi yazın ve Tamam'ı tıklatın.

      Not ZamanAşımıSüresi, hizmet için ayarlamak istediğiniz zaman aşımı süresi (milisaniye olarak) değeri için bir yer tutucudur. Örneğin, zaman aşımı süresini 24 saat (86400000 milisaniye) olarak ayarlamak istiyorsanız 86400000 yazın.
    6. Bilgisayarı yeniden başlatın. Hizmet Denetim Yöneticisi'nin bu değişikliği uygulaması için bilgisayarı yeniden başlatmalısınız.
  4. Windows hizmetinizi başlatın. Bunu yapmak için şu adımları izleyin:
    1. Başlat'ı tıklatın ve Programlar'ın üzerine gidin.
    2. Programlar menüsünde, Yönetimsel Araçlar'ın üzerine gidin ve Hizmetler'i tıklatın. Hizmetler konsolu görüntülenir.
    3. Hizmetler konsolunun sağ bölmesinde, HizmetAdı'nı sağ tıklatın ve ardından Başlat'ı tıklatın.

      Not HizmetAdı, hata ayıklamak istediğiniz hizmetin adı için bir yer tutucudur.

Sorun giderme

Bir hizmette ağ üzerinden hata ayıklamaya çalışmadan önce, hizmetin kullandığı simgelere ve kaynak dosyalarına, hizmetin çalışacağı bilgisayardan erişilebildiğini doğrulayın. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
  • Bilgisayarınızda hizmetin kullandığı simgeler ve kaynak dosyalarını içeren klasör için Everyone (Herkes) grubuna en azından okuma erişim izinleri verin.
  • Hizmetin kullandığı bu simgeleri ve kaynak dosyalarını, hizmetin çalıştırılacağı bilgisayara kopyalayın.

Referanslar

Bu makalede açıklanan araçları ve yardımcı programları karşıdan yüklemek için şu Microsoft Web sitesini ziyaret edin:
Windows için hata ayıklama araçları: Genel Bakış
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Daha fazla bilgi için, şu Microsoft Developer Network (MSDN) Web sitelerini ziyaret edin:
WinDbg hata ayıklayıcısı
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Hizmetler
http://msdn2.microsoft.com/en-us/library/ms685141.aspx
Genel Bayraklar yardımcı programını kullanma
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools/hh/ddtools/DV_66c1db5c-fbc6-43a9-b318-4b3c0cda1009.xml.asp

Özellikler

Makale numarası: 824344 - Last Review: 16 Mayıs 2007 Çarşamba - Gözden geçirme: 6.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Service Pack 1a
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Service Pack 1a
Anahtar Kelimeler: 
kbhowtomaster kbregistry kbmisctools kbservice kbdebug KB824344

Geri Bildirim Ver

 

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