Hata ayıklama protokolü işleyicileri

Protokol işleyicilerinin nasıl başlatıldığını anlamak, protokol işleyici uygulamalarınızı test etmek ve hata ayıklamak için çok önemlidir.

Bu konu aşağıdaki gibi düzenlenmiştir:

Hata ayıklama protokolü işleyicileri hakkında

SearchIndexer işlemi (searchindexer.exe), sistem bağlamında SearchProtocolHost işleminin (SearchProtocolHost.exe) bir kopyasını ve kullanıcı bağlamında başka bir kopyasını başlatır. Ardından, protokol işleyicileri gerektiğinde SearchProtocolHost işlemine yüklenir. Arama hizmeti durdurulana kadar onlar boşaltılmaz. Hizmet çalışırken protokol işleyicisinin aynı örneği birkaç kez yeniden kullanılır.

SearchIndexer ve SearchProtocolHost işlemleri dizin oluşturma sırasında sık sık iletişim kurar. Hata ayıklamak için SearchProtocolHost işlemini duraklatır veya durdurursanız, SearchIndexer yeni bir SearchProtocolHost işlemi başlatır ve hata ayıklama oturumunuzu geçersiz bırakır. Ayrıca, hata ayıklayıcınızı doğrudan SearchProtocolHost işlemine eklerseniz, searchindexer.exe'dan searchprotocolhost.exe'e tanıtıcı devralmayı kesebilir ve iki işlem arasında iletişimi engelleyebilirsiniz.

Bu sorunları önlemek için, hata ayıkladığınız arama hizmetine bildirmeniz ve daha sonra açıklandığı gibi alt işlemlerde hata ayıklama yönergeleriyle birlikte hata ayıklayıcıyı SearchIndexer işlemine eklemeniz gerekir.

Hata ayıklamayı ayarlama

Protokol işleyiciniz için hata ayıklamayı ayarlamak için bu adımları izleyin.

  1. DebugFilters değerini kayıt defterinde 1 olarak ayarlayarak, hata ayıkladığınız arama hizmetine bildirin:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
       Windows Search
          Gathering Manager
             DebugFilters = 1
    
  2. Görüntü Dosyası Yürütme Seçenekleri kayıt defteri anahtarını kullanarak hata ayıklayıcı ekleyin:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
       Image File Execution Options
          SearchIndexer.exe
             Debugger = <path to debugger> <debugger options> 
    

    Örnek hata ayıklayıcı seçenekleri aşağıdaki tabloda açıklanmıştır.

    Örnek ntsd hata ayıklayıcısıHata Ayıklayıcısı = C:\debuggers\ntsd.exe -odGx -c: "sxe ld mydll.dll;g"

  3. compmgmt.msc, services.msc veya aşağıdakine benzer komutlar içeren bir komut penceresi kullanarak hata ayıklayıcının altındaki searchindexer.exe yeniden başlatın:

    net stop wsearch
    <copy new DLLs for debugging>
    net start wsearch
    

Sistem bağlamında çalışan ve kullanıcı bağlamında çalışan bir SearchProtocolHost işlemini ayırt etmek için ortam dizelerini gözden geçirebilirsiniz. örneğin ntsd.exeile, işlem ortamı bloğundaki (PEB) bilgilerin biçimlendirilmiş bir görünümünü görüntülemek için !peb uzantı komutunu kullanabilirsiniz.

Ek kaynaklar

Kavramsal