Egyéni hibakereső inicializálása mobilplatformokon

Az egyéni .NET hibakeresőket általában külön folyamat üzemelteti. A mobilplatformok korlátozzák vagy tiltják az ilyen folyamatok létrehozását, ezért a céloldali egyéni hibakereső összetevőt be kell tölteni az alkalmazás folyamatába.

Ez a cikk csak a hibakereső inicializálására vonatkozik mobilplatformokon (iOS és Android) .NET 11- és újabb verziókban. Ez nem vonatkozik a NativeAOT-ra.

A céloldali összetevő implementálása és üzembe helyezése

A céloldali hibakereső összetevőt DllGetClassObject belépési ponttal rendelkező profilozó dinamikus könyvtárként kell megvalósítani. Példamegvalósításokért lásd a .NET-profilozó mintákat.

Az alkalmazás részeként a libmscordbi és a libmscordaccore dinamikus kódtárakkal együtt kell üzembe helyezni, a célplatform natív kódtár-csomagolási, kódaláírási és betöltési követelményeinek megfelelően.

A céloldali összetevő betöltése induláskor

Ha azt szeretné, hogy a CoreCLR betöltse az összetevőt profilkészítőként, adja meg a következő környezeti beállításokat a futtatókörnyezet indítása előtt:

Környezet változó Value
DOTNET_ENABLE_PROFILING 1
DOTNET_PROFILER {<profiler-CLSID>}
DOTNET_PROFILER_PATH <component-path>

Cserélje le a(z) <profiler-CLSID> elemet az összetevő profilerének GUID-jára, és tartsa meg a körülötte lévő kapcsos zárójeleket. Cserélje le a(z) <component-path> elemet a natív összetevő elérési útjára a célalkalmazás üzembe helyezésében.

Ezekről a beállításokról további információt a futtatókörnyezet konfigurációs beállításaiban talál a hibakereséshez és a profilkészítéshez.

A beállítások megadásához használja a platform alkalmazásindítási konfigurációját.

Note

Bár ez az eljárás a hibakereső inicializálására használja a profilkészítő mechanizmust, nem biztosít általános célú támogatást a külső profilkészítők számára a mobilplatformokon.

A hibakereső felületének létrehozása

A céloldali összetevőben hajtsa végre a következő inicializálást:

  1. Betölti a libmscordbi dinamikus könyvtárat, és meghívja annak CoreCLRCreateCordbObjectEx exportját. Kérdezze le a visszaadott objektumot a(z) ICorDebug elemre.
  2. Hívja meg az ICorDebug::Initialize parancsot, és regisztrálja a felügyelt eseménykezelőt az ICorDebug::SetManagedHandler használatával.
  3. Kapcsolódjon az alkalmazáshoz az ICorDebug::DebugActiveProcess használatával.

Annak érdekében, hogy ne maradjanak ki a korai modulbetöltési és indítási események, hangolja össze a csatlakoztatást a futtatókörnyezet indulásával, hogy a felügyelt kód végrehajtása ne folytatódjon, mielőtt a(z) DebugActiveProcess befejeződik.

Az inicializálás után használja a ICorDebug hibakereső felületeket, mint más Unix-platformokon.