Megosztás a következőn keresztül:


CLR ETW-szolgáltatók

A közös nyelvi futtatókörnyezet (CLR) két szolgáltatóval rendelkezik: a futtatókörnyezet-szolgáltatóval és a futtatókörnyezet-szolgáltatóval.

A futtatókörnyezet-szolgáltató eseményeket indít el attól függően, hogy mely kulcsszavak (eseménykategóriák) vannak engedélyezve. A kulcsszó engedélyezésével LoaderKeyword például gyűjthet betöltőeseményeket.

A Windows (ETW) eseménykövetése egy .etl kiterjesztésű fájlba van bejelentkezve, amely később szükség szerint vesszővel tagolt (.csv) fájlokban is feldolgozható. Az .etl-fájl .csv fájllá alakításáról további információt a .NET-keretrendszer naplózásának szabályozása című témakörben talál.

A futtatókörnyezet-szolgáltató

A futtatókörnyezet-szolgáltató a fő CLR ETW-szolgáltató.

A CLR futtatókörnyezet-szolgáltató GUID azonosítója e13c0d23-ccbc-4e12-931b-d9cc2eee27e4.

Példák a CLR ETW-események naplózására és megtekintésére általánosan elérhető eszközökkel: .NET-keretrendszer naplózásának szabályozása.

Az olyan kulcsszavak használata mellett, mint a LoaderKeyword, előfordulhat, hogy engedélyeznie kell a kulcsszavakat a túl gyakran felmerülő naplózási eseményekhez. A StartEnumerationKeyword és a kulcsszavak engedélyezik ezeket az EndEnumerationKeyword eseményeket, és a CLR ETW kulcsszavak és szintek szerint vannak összegezve.

A lefuttatási szolgáltató

A lefuttatási szolgáltatót be kell kapcsolni bizonyos speciális célú felhasználásokhoz. A felhasználók többsége számára azonban elegendőnek kell lennie a futtatókörnyezet-szolgáltatónak.

A CLR-futtató szolgáltató GUID azonosítója A669021C-C450-4609-A035-5AF59AF4DF18.

Általában az ETW-naplózás engedélyezve van egy folyamat indítása előtt, és a naplózás ki van kapcsolva a folyamat bezárása után. Ha azonban az ETW-naplózás be van kapcsolva a folyamat végrehajtása közben, további információra van szükség a folyamatról. A szimbólumfeloldáshoz például naplóznia kell a metóduseseményeket azokhoz a metódusokhoz, amelyek már be voltak töltve a naplózás bekapcsolása előtt.

A DCStart és DCEnd az esemény rögzíti a folyamat állapotát, amikor az adatgyűjtés elindult és leállt. (Az állapot magas szintű információkra utal, beleértve a már igény szerinti (JIT) lefordított metódusokat és a betöltött szerelvényeket.) Ez a két esemény információt nyújthat arról, hogy mi történt a folyamatban; például a JIT által lefordított metódusok és így tovább.

A futtató szolgáltató csak a , , vagy DCInit a nevükben szereplő eseményeket DCemeli DCEndki. DCStart Emellett ezek az események csak a lefuttatási szolgáltatónál jönnek létre.

Az esemény kulcsszószűrői mellett a lefutási szolgáltató a és EndRundownKeyword a StartRundownKeyword kulcsszót is támogatja a célzott szűrés biztosításához.

Rundown indítása

Az indítási lefutás akkor aktiválódik, ha a lefutási szolgáltató alatti naplózás engedélyezve van a StartRundownKeyword kulcsszóval. Ennek hatására az DCStart esemény létrejön, és rögzíti a rendszer állapotát. Az enumerálás megkezdése előtt az DCStartInit esemény létre lesz állítva. Az enumerálás végén az DCStartComplete esemény létrejön, hogy értesítse az adatkezelőt arról, hogy az adatgyűjtés a szokásos módon leállt.

Lefuttatás vége

A végponti lefutás akkor aktiválódik, ha a lefutási szolgáltató alatti naplózás engedélyezve van a EndRundownKeyword kulcsszóval. A lefuttatás befejezése leállítja a profilkészítést egy folyamatban, amely továbbra is fut. Az DCEnd események rögzítik a rendszer állapotát a profilkészítés leállításakor.

Az enumerálás megkezdése előtt az DCEndInit esemény létre lesz állítva. Az enumerálás végén az DCEndComplete esemény azért jön létre, hogy értesítse a fogyasztót arról, hogy az adatgyűjtés a szokásos módon megszakadt. A start-rundown és a end rundown elsősorban a felügyelt szimbólumfeloldáshoz használatos. A start rundown címtartomány-információkat nyújthat azokhoz a metódusokhoz, amelyeket a profilkészítési munkamenet elindítása előtt már JIT-fordítással állítottak össze. A záró lefuttatás címtartomány-információkat nyújthat az összes olyan metódushoz, amelyet a JIT-re fordítottak, amikor a profilkészítés hamarosan ki lesz kapcsolva.

A leállítás befejezése nem történik meg automatikusan egy profilkészítési munkamenet leállításakor. Ehelyett egy felügyelt szimbólumfeloldást kérő eszköznek explicit módon meg kell hívnia egy CLR-futtató szolgáltatói munkamenetet, amelyen engedélyezve van a EndRundownKeyword kulcsszó, közvetlenül a profilkészítés leállítása előtt.

Bár a start rundown vagy a end rundown meg tudja adni a metódus címtartományának adatait a felügyelt szimbólumok feloldásához, javasoljuk, hogy a EndRundownKeyword kulcsszó helyett (amely eseményeket szolgáltat DCEnd ) használja a StartRundownKeyword kulcsszót (amely eseményeket szolgáltat DCStart ). A használatával StartRundownKeyword a lefutás a profilkészítési munkamenet során következik be, ami megzavarhatja a profilkészítési forgatókönyvet.

ETW-adatgyűjtés futtatókörnyezeti és futtatókörnyezeti szolgáltatók használatával

Az alábbi példa bemutatja, hogyan használhatja a CLR-lefutási szolgáltatót úgy, hogy minimális hatással legyen a felügyelt folyamatok szimbólumfeloldására, függetlenül attól, hogy a folyamatok a profilozott ablakban vagy azon kívül kezdődnek vagy végződnek.

  1. Kapcsolja be az ETW-naplózást a CLR-futtatókörnyezet szolgáltatójának használatával:

    xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4:0x1CCBD:0x5 -f clr1.etl
    

    A rendszer a clr1.etl fájlba menti a naplót.

  2. Ha le szeretné állítani a profilkészítést, amíg a folyamat folytatódik, indítsa el a lefuttatási szolgáltatót az DCEnd események rögzítéséhez:

    xperf -start clrRundown -on A669021C-C450-4609-A035-5AF59AF4DF18:0xB8:0x5 -f clr2.etl
    

    Ez lehetővé teszi, hogy az események gyűjteménye DCEnd elindítsa a lefuttatási munkamenetet. Előfordulhat, hogy az összes esemény összegyűjtéséhez 30–60 másodpercet kell várnia. A rendszer a clr1.et2 fájlba menti a naplót.

  3. Kapcsolja ki az összes ETW-profilkészítést:

    xperf -stop clrRundown
    xperf -stop clr  
    
  4. A profilok egyesítése egy naplófájl létrehozásához:

    xperf -merge clr1.etl clr2.etl merged.etl  
    

    Az egyesített.etl fájl tartalmazni fogja a futtatókörnyezet és a futtatókörnyezeti szolgáltató munkameneteinek eseményeit.

Az eszközök végrehajthatják a 2. és a 3. lépést (lefutási munkamenet indítása, majd a profilkészítés leállítása) ahelyett, hogy azonnal kikapcsolják a profilkészítést, amikor egy felhasználó a profilkészítés leállítását kéri. Az eszközök a 4. lépést is végrehajthatják.

Lásd még