Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyediakan pemberitahuan bahwa eksekusi kode telah menemukan asisten penelusuran kesalahan terkelola (MDA) dalam aplikasi yang sedang di-debug.
Syntax
HRESULT MDANotification(
[in] ICorDebugController *pController,
[in] ICorDebugThread *pThread,
[in] ICorDebugMDA *pMDA
);
Parameter-parameternya
pController [di] Penunjuk ke antarmuka ICorDebugController yang mengekspos proses atau domain aplikasi tempat MDA terjadi.
Debugger tidak boleh membuat asumsi tentang apakah pengontrol adalah proses atau domain aplikasi, meskipun selalu dapat mengkueri antarmuka untuk membuat penentuan.
pThread [di] Penunjuk ke antarmuka ICorDebugThread yang mengekspos utas terkelola tempat peristiwa debug terjadi.
Jika MDA terjadi pada utas yang tidak dikelola, nilainya pThread akan null.
Anda harus mendapatkan ID utas sistem operasi (OS) dari objek MDA itu sendiri.
pMDA [di] Penunjuk ke antarmuka ICorDebugMDA yang mengekspos informasi MDA.
Komentar
MDA adalah peringatan heuristik dan tidak memerlukan tindakan debugger eksplisit kecuali untuk memanggil ICorDebugController::Lanjutkan untuk melanjutkan eksekusi aplikasi yang sedang di-debug.
Runtime bahasa umum (CLR) dapat menentukan MDA mana yang diaktifkan dan data mana dalam MDA tertentu kapan saja. Oleh karena itu, debugger tidak boleh membangun fungsionalitas apa pun yang memerlukan pola MDA tertentu.
MDA dapat diantrekan dan ditembakkan tak lama setelah MDA ditemui. Ini bisa terjadi jika runtime perlu menunggu sampai mencapai titik aman untuk menembakkan MDA, alih-alih menembakkan MDA ketika menemukannya. Ini juga berarti bahwa runtime dapat menembakkan sejumlah MDA dalam satu set panggilan balik yang diantrekan (mirip dengan operasi peristiwa "lampirkan").
Debugger harus merilis referensi ke ICorDebugMDA instans segera setelah kembali dari MDANotification panggilan balik, untuk memungkinkan CLR mendaur ulang memori yang digunakan oleh MDA. Merilis instans dapat meningkatkan performa jika banyak MDA menembak.
Persyaratan
Platform: Lihat Sistem operasi yang didukung .NET.
Header: CorDebug.idl, CorDebug.h
Perpustakaan: CorGuids.lib
Versi .NET: Tersedia sejak .NET Framework 2.0