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 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ó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 DC
emeli DCEnd
ki. 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.
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.
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.
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.
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.
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.Kapcsolja ki az összes ETW-profilkészítést:
xperf -stop clrRundown xperf -stop clr
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.
.NET-visszajelzés
A(z) .NET egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást: