Bagikan melalui


File Metadata untuk Plug-in Ekstensi Analisis

Saat Anda menulis plug-in ekstensi analisis, Anda juga menulis file metadata yang menjelaskan situasi di mana Anda ingin plug-in Anda dipanggil. Ketika perintah !analyze debugger berjalan, perintah ini menggunakan file metadata untuk menentukan plug-in mana yang akan dimuat.

Buat file metadata dengan nama yang sama dengan plug-in ekstensi analisis Anda dan berformat .alz. Misalnya, jika plug-in ekstensi analisis Anda diberi nama MyAnalyzer.dll, file metadata Anda harus bernama MyAnalyzer.alz. Tempatkan file metadata di direktori yang sama dengan plug-in ekstensi analisis Anda.

File metadata untuk plug-in ekstensi analisis adalah file teks ASCII yang berisi pasangan kunci-nilai. Kunci dan nilai dipisahkan oleh spasi kosong. Kunci dapat memiliki karakter non-spasi kosong. Kunci tidak membedakan huruf besar dan kecil.

Setelah kunci dan spasi kosong berikut, nilai yang sesuai dimulai. Nilai dapat memiliki salah satu formulir berikut.

  • Sekumpulan karakter apa saja hingga akhir baris. Formulir ini berfungsi untuk nilai yang tidak berisi karakter baris baru.

    Penting Jika nilai terakhir dalam file metadata memiliki bentuk seperti ini, baris harus berakhir dengan karakter baris baru.

  • Sekumpulan karakter di antara kurung kurawal { }. Formulir berfungsi untuk nilai-nilai yang berisi karakter baris baru.

Baris yang dimulai dengan # adalah komentar dan diabaikan. Komentar hanya dapat dimulai di mana kunci diharapkan.

Anda dapat menggunakan kunci berikut dalam file metadata.

Kunci Deskripsi
PluginId String - Mengidentifikasi plug-in.
DebuggeeClass String - Nilai yang mungkin adalah "Kernel" dan "Pengguna". Menunjukkan bahwa plug-in hanya tertarik untuk menganalisis kegagalan mode kernel atau hanya kegagalan mode pengguna.
BugCheckCode Kode pemeriksaan bug 32-bit - Menunjukkan bahwa plug-in tertarik untuk menganalisis kode pemeriksaan bug ini. Satu file metadata dapat menentukan beberapa kode pemeriksaan bug.
ExceptionCode Kode pengecualian 32-bit - Menunjukkan bahwa plug-in tertarik untuk menganalisis kode pengecualian ini. Satu file metadata dapat menentukan beberapa kode pengecualian.
ExecutableName String - Menunjukkan bahwa plug-in hanya tertarik pada sesi di mana ini adalah eksekusi berjalan dari proses yang akan dianalisis. Satu file metadata dapat menentukan beberapa nama yang dapat dieksekusi.
Nama Gambar String - Menunjukkan bahwa plug-in hanya tertarik pada sesi di mana analisis default menganggap gambar ini (dll, sys, atau exe) sebagai penyebab kesalahan. Plug-in dipanggil setelah analisis menentukan gambar mana yang salah. Satu file metadata dapat menentukan beberapa nama gambar.
MaxTagCount Bilangan bulat - Jumlah maksimum tag kustom yang dibutuhkan plug-in. Tag kustom adalah tag selain yang ditentukan dalam extsfns.h.

Contoh File Metadata

File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis kode pemeriksaan bug 0xE2. Ingat bahwa baris terakhir harus diberi akhiran dengan karakter baris baru.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

File metadata berikut menjelaskan plug-in yang didesain untuk menganalisis pemeriksaan kesalahan 0x8, 0x9, dan 0xA jika MyDriver.sys dianggap sebagai modul yang dianggap bersalah.

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

File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis kode pengecualian 0xC0000005 jika MyApp.exe adalah proses yang dapat dijalankan yang sedang dianalisis. Selain itu, plugin tersebut mungkin membuat hingga tiga tag kustom.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Alat Debugging untuk Windows memiliki contoh yang bisa Anda gunakan untuk membuat modul ekstensi debugger bernama dbgexts.dll. Modul ekstensi ini menerapkan beberapa perintah ekstensi debugger, tetapi juga dapat berfungsi sebagai plug-in ekstensi analisis; yaitu, mengekspor fungsi _EFN_Analyze . Berikut adalah file metadata yang menjelaskan dbgexts.dll sebagai plug-in ekstensi analisis.

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}
#

Lihat juga

Menulis Plug-in Ekstensi Analisis untuk Memperluas !analyze

_EFN_Analyze

!analyze