Aracılığıyla paylaş


Çözümleme Uzantısı Eklentileri için Meta Veri Dosyaları

Bir analiz uzantısı eklentisi yazdığınızda, eklentinizin çağrılmasını istediğiniz durumları açıklayan bir meta veri dosyası da yazarsınız. !analyze hata ayıklayıcısı komutu çalıştırıldığında, yüklenecek eklentileri belirlemek için meta veri dosyalarını kullanır.

Analiz uzantısı eklentinizle aynı ada ve .alz uzantısına sahip bir meta veri dosyası oluşturun. Örneğin, analiz uzantısı eklentiniz MyAnalyzer.dllolarak adlandırılırsa meta veri dosyanız MyAnalyzer.alz olarak adlandırılmalıdır. Meta veri dosyasını analiz uzantısı eklentinizle aynı dizine yerleştirin.

Analiz uzantısı eklentisi için meta veri dosyası, anahtar-değer çiftleri içeren bir ASCII metin dosyasıdır. Anahtarlar ve değerler boşlukla ayrılır. Bir anahtar, boşluk içermeyen herhangi bir karakter içerebilir. Anahtarlar büyük/küçük harfe duyarlı değildir.

Anahtardan ve ondan sonraki boşluktan sonra karşılık gelen değer başlıyor. Bir değer aşağıdaki formlardan birine sahip olabilir.

  • Satır sonuna kadar olan tüm karakter kümeleri. Bu form, yeni satır karakteri içermeyen değerler için çalışır.

    Önemli Meta veri dosyasındaki son değer bu formda bir değere sahipse, satırın yeni satır karakteriyle bitmesi gerekir.

  • { } ayraçları arasındaki herhangi bir karakter kümesi. Form, yeni satır karakterleri içeren değerler için çalışır.

# ile başlayan satır bir açıklamadır ve yoksayılır. Açıklamalar yalnızca anahtarların beklendiği yerde başlayabilir.

Meta veri dosyasında aşağıdaki anahtarları kullanabilirsiniz.

Anahtar Açıklama
PluginId Dize - Eklentiyi tanımlar.
DebuggeeClass Dize - Olası değerler "Çekirdek" ve "Kullanıcı"dır. Eklentinin yalnızca çekirdek modu hatalarını veya yalnızca kullanıcı modu hatalarını analiz etmekle ilgilendiğini gösterir.
Hata Denetim Kodu 32 bit hata denetimi kodu - Eklentinin bu hata denetimi kodunu analiz etmekle ilgilendiğini gösterir. Tek bir meta veri dosyası birden çok hata denetimi kodu belirtebilir.
İstisna Kodu 32 bit özel durum kodu - Eklentinin bu özel durum kodunu analiz etmekle ilgilendiğini gösterir. Tek bir meta veri dosyası birden çok özel durum kodu belirtebilir.
ExecutableName Dize - Eklentinin yalnızca çözümlenecek işlemin çalıştırılan yürütülebilir dosyası olduğu oturumlarla ilgilendiğini gösterir. Tek bir meta veri dosyası birden çok yürütülebilir ad belirtebilir.
ResimAdı Dize - Eklentinin yalnızca varsayılan çözümlemenin bu görüntüyü (dll, sys veya exe) hatalı olarak kabul ettiği oturumlarla ilgilendiğini gösterir. Analiz hangi görüntünün hatalı olduğunu belirledikten sonra eklenti çağrılır. Tek bir meta veri dosyası birden çok görüntü adı belirtebilir.
Maksimum Etiket Sayısı Integer - Eklentinin ihtiyaç duyduğu en fazla özel etiket sayısıdır. Özel etiketler, extsfns.h dosyasında tanımlanan etiketler dışındaki etiketlerdir.

Örnek Meta Veri Dosyaları

Aşağıdaki meta veri dosyası, hata denetimi kodu 0xE2 analiz etmek isteyen bir eklentiyi açıklar. Son satırın yeni satır karakteriyle bitmesi gerektiğini unutmayın.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Aşağıdaki meta veri dosyası, MyDriver.sys hata modülü olarak kabul edilirse, hata denetimleri 0x8, 0x9 ve 0xA'yı analiz etmekle ilgilenen bir eklentiyi açıklar.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

Aşağıdaki meta veri dosyasında, analiz edilen işlemin çalıştırılan yürütülebilir dosyası MyApp.exe olup olmadığını 0xC0000005 özel durum kodunu analiz etmek isteyen bir eklenti açıklanır. Ayrıca, eklenti en fazla üç özel etiket oluşturabilir.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Windows için Hata Ayıklama Araçları, dbgexts.dlladlı bir hata ayıklayıcı uzantısı modülü oluşturmak için kullanabileceğiniz bir örneğe sahiptir. Bu uzantı modülü birkaç hata ayıklayıcı uzantısı komutu uygular, ancak bir analiz uzantısı eklentisi olarak da kullanılabilir; yani bir _EFN_Analyze işlevini dışarı aktarır. dbgexts.dll bir analiz uzantısı eklentisi olarak tanımlayan bir meta veri dosyası aşağıdadır.

PluginId         PluginSample
DebuggeeClass   User
ExceptionCode   0xc0000005
ExecutableName      cdb.exe
ExecutableName      windbg.exe
#
# Custom tag descriptions 
#
TagDesc         0xA0000000  SAMPLE_PLUGIN_DEBUG_TEXT    {Sample debug help text from plug-in analysis}
#

Ayrıca bakınız

!analyze Komutunu Genişletmek İçin Bir Çözümleme Uzantısı Eklentisi Geliştirme

_EFN_Analiz

!analyze