EXT_ANALYSIS_PLUGIN fungsi panggilan balik (extsfns.h)
Saat menulis Ekstensi Analisis, Anda harus menerapkan EXT_ANALYSIS_PLUGIN yang diekspor sebagai (_EFN_Analyze). Ketika perintah !analyze debugger berjalan, perintah ini memanggil _EFN_Analyze Anda di setiap fase, sehingga Anda dapat berpartisipasi dalam analisis.
Konvensi panggilan WINAPI (__stdcall) diperlukan. Tidak ada pengecualian (noexcept) yang harus meninggalkan fungsi.
Sintaks
EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;
HRESULT ExtAnalysisPlugin(
[in] PDEBUG_CLIENT4 Client,
[in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
[in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}
Parameter
[in] Client
Penunjuk ke antarmuka IDebugClient4 . Gunakan antarmuka ini untuk mengakses debugger. Gunakan QueryInterface untuk mengakses antarmuka Debugger lainnya, seperti antarmuka Warisan (IDebug*
), Host Debug (IDebugHost*
), Model Data (IDataModel*
), dll., .
[in] CallPhase
Nilai dalam enumerasi FA_EXTENSION_PLUGIN_PHASE yang menentukan fase analisis mana yang saat ini sedang berlangsung. Fase analisis termasuk inisialisasi, analisis tumpukan, pra-bucketing, dan pasca-bucketing.
[in] pAnalysis
Penunjuk ke antarmuka IDebugFailureAnalysis2 . Gunakan antarmuka ini untuk Mendapatkan/Mengatur properti analisis. Gunakan QueryInterface untuk mengakses antarmuka !analyze lainnya.
Nilai kembali
S_OK - Perubahan dilakukan.
S_FALSE – Tidak ada perubahan yang dilakukan.
E_* - Terjadi kesalahan. !analyze akan melaporkan kesalahan melalui Kunci/Nilai menggunakan string Kunci dan Plugin.Exception."Phase"."DLL"
string Nilai HRESULT dalam format "0x%08x".
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | extsfns.h |