Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vlastní ladicí programy .NET jsou obvykle hostovány v samostatném procesu. Mobilní platformy omezují nebo zakazují vytváření takových procesů, takže komponenta vlastního ladicího programu na straně cíle musí být načtena do procesu aplikace.
Tento článek se týká pouze inicializace ladicího programu na mobilních platformách (iOS a Android) v .NET 11 a novějších verzích. Nevztahuje se na NativeAOT.
Implementujte a nasaďte komponentu na cílové straně
Komponenta ladicího programu na cílové straně by měla být implementována jako dynamická knihovna profileru se vstupním bodem DllGetClassObject. Příklady implementací najdete v ukázkách .NET profileru.
Měla by být nasazena společně s dynamickými knihovnami libmscordbi a libmscordaccore jako součást aplikace v souladu s nativním balením nativní knihovny cílové platformy, podepisováním kódu a požadavky na načítání.
Načtení komponenty na straně cíle při spuštění
Pokud chcete, aby se komponenta CoreCLR načetla jako profiler, před spuštěním modulu runtime zadejte následující nastavení prostředí:
| Proměnná prostředí | Value |
|---|---|
DOTNET_ENABLE_PROFILING |
1 |
DOTNET_PROFILER |
{<profiler-CLSID>} |
DOTNET_PROFILER_PATH |
<component-path> |
Nahraďte <profiler-CLSID> identifikátorem GUID profileru vaší komponenty a ponechte ohraničující složené závorky. Nahraďte <component-path> cestou k nativní komponentě v rámci nasazení cílové aplikace.
Podrobnosti o těchto nastaveních najdete v tématu Možnosti konfigurace modulu runtime pro ladění a profilaci.
K zadání těchto nastavení použijte konfiguraci spuštění aplikace vaší platformy.
Note
I když tento postup používá mechanismus profileru k inicializaci ladicího programu, nevytvořuje podporu pro profilátory třetích stran na mobilních platformách.
Vytvoření rozhraní ladicího programu
V cílové komponentě proveďte následující inicializaci:
- Načtěte
libmscordbidynamickou knihovnu a zavolejte jejíCoreCLRCreateCordbObjectExexportovanou funkci. Zadejte dotaz na vrácený objekt proICorDebug. - Zavolejte ICorDebug::Initialize a zaregistrujte obslužnou rutinu spravované události pomocí ICorDebug::SetManagedHandler.
- Připojte se k aplikaci pomocí ICorDebug::D ebugActiveProcess.
Abyste nepřišli o počáteční události načítání modulů a spouštění, koordinujte připojení se spuštěním modulu runtime tak, aby spouštění spravovaného kódu nepokračovalo před dokončením DebugActiveProcess.
Po inicializaci používejte rozhraní ladicího programu ICorDebug stejně jako na ostatních unixových platformách.