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 yang memiliki nama yang sama dengan plug-in ekstensi analisis Anda dan ekstensi .alz. Misalnya, jika plug-in ekstensi analisis Anda diberi nama MyAnalyzer.dll, file metadata Anda harus diberi nama 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 peka huruf besar/kecil.
Setelah kunci dan spasi kosong berikut, nilai yang sesuai dimulai. Nilai dapat memiliki salah satu formulir berikut.
Setiap set karakter ke akhir baris. Formulir ini berfungsi untuk nilai yang tidak berisi karakter baris baru.
Penting Jika nilai terakhir dalam file metadata memiliki nilai formulir ini, baris harus diakhir dengan karakter baris baru.
Setiap set karakter di antara tanda kurung kurawal { }. Formulir berfungsi untuk 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 executable proses yang berjalan untuk dianalisis. Satu file metadata dapat menentukan beberapa nama yang dapat dieksekusi. |
ImageName | String - Menunjukkan bahwa plug-in hanya tertarik pada sesi di mana analisis default menganggap gambar ini (dll, sys, atau exe) salah. 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 diakhir dengan karakter baris baru.)
PluginId MyPlugin
DebuggeeClass Kernel
BugCheckCode 0xE2
File metadata berikut menjelaskan plug-in yang tertarik untuk menganalisis pemeriksaan bug 0x8, 0x9, dan 0xA jika MyDriver.sys dianggap sebagai modul karena kesalahan.
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 dieksekusi yang sedang dianalisis. Selain itu, plug-in mungkin membuat sebanyak tiga tag kustom.
PluginId MyPlugin
DebuggeeClass User
ExceptionCode 0xC0000005
ExecutableName MyApp.exe
Alat Debugging untuk Windows memiliki sampel yang dapat Anda gunakan untuk membangun 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk