Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anpassade .NET felsökningsprogram finns vanligtvis i en separat process. Mobila plattformar begränsar eller förbjuder att sådana processer skapas, så den anpassade felsökningskomponenten på målsidan måste i stället läsas in i programprocessen.
Den här artikeln gäller endast initiering av felsökningsprogram på mobila plattformar (iOS och Android) i .NET 11 och senare versioner. Det gäller inte nativeAOT.
Implementera och distribuera komponenten på målsidan
Felsökningskomponenten på målsidan ska implementeras som ett dynamiskt profilerarbibliotek med en DllGetClassObject startpunkt. Exempel på implementeringar finns i .NET profilerarexempel.
Den bör distribueras tillsammans med dynamiska bibliotek med libmscordbi och libmscordaccore som en del av programmet i enlighet med målplattformens interna bibliotekspaketering, kodsignering och inläsningskrav.
Läs in komponenten på målsidan vid start
Om du vill att CoreCLR ska läsa in komponenten som profilerare anger du följande miljöinställningar innan körningen startar:
| Miljövariabel | Value |
|---|---|
DOTNET_ENABLE_PROFILING |
1 |
DOTNET_PROFILER |
{<profiler-CLSID>} |
DOTNET_PROFILER_PATH |
<component-path> |
Ersätt <profiler-CLSID> med komponentens PROFILER-GUID och behåll de omslutande klammerparenteserna. Ersätt <component-path> med sökvägen till den inbyggda komponenten i målappens distribution.
Mer information om de här inställningarna finns i Körningskonfigurationsalternativ för felsökning och profilering.
Använd plattformens appstartskonfiguration för att ange de här inställningarna.
Note
Även om den här proceduren använder profileringsmekanismen för att initiera ett felsökningsprogram, etablerar den inte generellt stöd för profilerare från tredje part på mobila plattformar.
Skapa felsökningsgränssnittet
Utför följande initiering i målkomponenten:
- Läs in
libmscordbidynamiskt bibliotek och anropa dessCoreCLRCreateCordbObjectExexport. Fråga det returnerade objektet efterICorDebug. - Anropa ICorDebug::Initiera och registrera din hanterad händelsehanterare med ICorDebug::SetManagedHandler.
- Koppla till appen med ICorDebug::D ebugActiveProcess.
För att undvika att missa tidiga händelser vid modulinläsning och start bör du samordna anslutningen med körningsmiljöns start så att den hanterade körningen inte fortsätter innan DebugActiveProcess har slutförts.
Efter initieringen använder du felsökningsgränssnitten ICorDebug som på andra Unix-plattformar.