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.
Debugger .NET kustom biasanya dihosting dalam proses terpisah. Platform seluler membatasi atau melarang pembuatan proses tersebut, sehingga komponen debugger kustom sisi target harus dimuat ke dalam proses aplikasi.
Artikel ini hanya berlaku untuk inisialisasi debugger pada platform seluler (iOS dan Android) di .NET 11 dan versi yang lebih baru. Ini tidak berlaku untuk NativeAOT.
Menerapkan dan menyebarkan komponen sisi target
Komponen debuger di sisi target harus diimplementasikan sebagai pustaka dinamis profiler dengan titik masuk DllGetClassObject. Untuk contoh implementasi, lihat contoh profiler .NET.
Ini harus disebarkan bersama dengan pustaka dinamis libmscordbi dan libmscordaccore sebagai bagian dari aplikasi sesuai dengan kemasan pustaka asli platform target, penandatanganan kode, dan persyaratan pemuatan.
Muat komponen sisi target saat memulai
Agar CoreCLR memuat komponen Anda sebagai profiler, berikan pengaturan lingkungan berikut sebelum runtime dimulai:
| Variabel Lingkungan | Nilai |
|---|---|
DOTNET_ENABLE_PROFILING |
1 |
DOTNET_PROFILER |
{<profiler-CLSID>} |
DOTNET_PROFILER_PATH |
<component-path> |
Ganti <profiler-CLSID> dengan GUID profiler komponen Anda, dan pertahankan tanda kurung kurawal yang mengapitnya. Ganti <component-path> dengan jalur ke komponen asli dalam penyebaran aplikasi target.
Untuk detail tentang pengaturan ini, lihat Opsi konfigurasi runtime untuk penelusuran kesalahan dan pembuatan profil.
Gunakan konfigurasi peluncuran aplikasi platform Anda untuk menyediakan pengaturan ini.
Note
Meskipun prosedur ini menggunakan mekanisme profiler untuk menginisialisasi debugger, prosedur ini tidak menetapkan dukungan tujuan umum untuk profiler pihak ketiga di platform seluler.
Membuat antarmuka debugger
Di komponen sisi target, lakukan inisialisasi berikut:
- Muat
libmscordbipustaka dinamis dan panggil ekspornyaCoreCLRCreateCordbObjectEx. Kueri objek yang dikembalikan untukICorDebug. - Panggil ICorDebug::Initialize, dan daftarkan handler peristiwa terkelola Anda dengan ICorDebug::SetManagedHandler.
- Hubungkan ke aplikasi dengan ICorDebug::DebugActiveProcess.
Untuk menghindari terlewatnya peristiwa awal saat modul dimuat dan saat startup, koordinasikan pengaitan dengan startup runtime agar eksekusi terkelola tidak berjalan sebelum DebugActiveProcess selesai.
Setelah inisialisasi, gunakan ICorDebug antarmuka debugger seperti pada platform Unix lainnya.