Zdarzenia ETW modułu ładującego
Te zdarzenia zbierają informacje dotyczące ładowania i zwalniania domen aplikacji, zestawów i modułów.
Wszystkie zdarzenia modułu LoaderKeyword
ładującego są wywoływane pod słowem kluczowym (0x8). Zdarzenia DCStart
i są wywoływane w obszarze LoaderRundownKeyword
(0x8) z włączoną obsługąStartRundown
/EndRundown
.DCEnd
(Aby uzyskać więcej informacji, zobacz CLR ETW Keywords and Levels(Słowa kluczowe i poziomy ŚRODOWISKA CLR ETW).
Zdarzenia domeny aplikacji
W poniższej tabeli przedstawiono słowo kluczowe i poziom.
Słowo kluczowe do zgłaszania zdarzenia | Zdarzenie | Poziom |
---|---|---|
LoaderKeyword (0x8) |
AppDomainLoad_V1 i AppDomainUnLoad_V1 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AppDomainDCStart_V1 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AppDomainDCEnd_V1 |
Informacyjne (4) |
W poniższej tabeli przedstawiono informacje o zdarzeniu.
Zdarzenie | Identyfikator zdarzenia | opis |
---|---|---|
AppDomainLoad_V1 (zarejestrowane dla wszystkich domen aplikacji) |
156 | Wywoływane za każdym razem, gdy domena aplikacji zostanie utworzona w okresie istnienia procesu. |
AppDomainUnLoad_V1 |
157 | Wywoływane za każdym razem, gdy domena aplikacji zostanie zniszczona w okresie istnienia procesu. |
AppDomainDCStart_V1 |
157 | Wylicza domeny aplikacji podczas uruchamiania. |
AppDomainDCEnd_V1 |
158 | Wylicza domeny aplikacji podczas końcowego uruchamiania. |
W poniższej tabeli przedstawiono dane zdarzenia.
Nazwa pola | Typ danych | opis |
---|---|---|
AppDomainID | win:UInt64 | Unikatowy identyfikator domeny aplikacji. |
AppDomainFlags | win:UInt32 | 0x1: domena domyślna. 0x2: wykonywalny. 0x4: Domena aplikacji, bit 28-31: Zasady udostępniania tej domeny. 0: domena udostępniona. |
Nazwadomeny aplikacji | win:UnicodeString | Przyjazna nazwa domeny aplikacji. Może ulec zmianie w okresie istnienia procesu. |
AppDomainIndex | Win:UInt32 | Indeks tej domeny aplikacji. |
ClrInstanceID | win:UInt16 | Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR. |
Zdarzenia zestawu modułu ładującego CLR
W poniższej tabeli przedstawiono słowo kluczowe i poziom.
Słowo kluczowe do zgłaszania zdarzenia | Zdarzenie | Poziom |
---|---|---|
LoaderKeyword (0x8) |
AssemblyLoad i AssemblyUnload |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
AssemblyDCStart |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
AssemblyDCEnd |
Informacyjne (4) |
W poniższej tabeli przedstawiono informacje o zdarzeniu.
Zdarzenie | Identyfikator zdarzenia | opis |
---|---|---|
AssemblyLoad_V1 |
154 | Podniesione po załadowaniu zestawu. |
AssemblyUnload_V1 |
155 | Podniesione po rozładowaniu zestawu. |
AssemblyDCStart_V1 |
155 | Wylicza zestawy podczas uruchamiania. |
AssemblyDCEnd_V1 |
156 | Wylicza zestawy podczas końcowego uruchamiania. |
W poniższej tabeli przedstawiono dane zdarzenia.
Nazwa pola | Typ danych | opis |
---|---|---|
Identyfikator zestawu | win:UInt64 | Unikatowy identyfikator zestawu. |
AppDomainID | win:UInt64 | Identyfikator domeny tego zestawu. |
Identyfikator powiązania | win:UInt64 | Identyfikator, który jednoznacznie identyfikuje powiązanie zestawu. |
Opóźnienie zestawu | win:UInt32 | 0x1: zestaw neutralny dla domeny. 0x2: zestaw dynamiczny. 0x4: Zestaw ma obraz natywny. 0x8: zestaw zbieralny. |
Assemblyname | win:UnicodeString | W pełni kwalifikowana nazwa zestawu. |
ClrInstanceID | win:UInt16 | Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR. |
Zdarzenia modułu
W poniższej tabeli przedstawiono słowo kluczowe i poziom.
Słowo kluczowe do zgłaszania zdarzenia | Zdarzenie | Poziom |
---|---|---|
LoaderKeyword (0x8) |
ModuleLoad_V2 i ModuleUnload_V2 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
ModuleDCStart_V2 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
ModuleDCEnd_V2 |
Informacyjne (4) |
W poniższej tabeli przedstawiono informacje o zdarzeniu.
Zdarzenie | Identyfikator zdarzenia | opis |
---|---|---|
ModuleLoad_V2 |
152 | Zgłaszane, gdy moduł jest ładowany w okresie istnienia procesu. |
ModuleUnload_V2 |
153 | Zgłaszane, gdy moduł jest zwalniany w okresie istnienia procesu. |
ModuleDCStart_V2 |
153 | Wylicza moduły podczas uruchamiania. |
ModuleDCEnd_V2 |
154 | Wylicza moduły podczas końcowego uruchamiania. |
W poniższej tabeli przedstawiono dane zdarzenia.
Nazwa pola | Typ danych | opis |
---|---|---|
Identyfikator modułu | win:UInt64 | Unikatowy identyfikator modułu. |
Identyfikator zestawu | win:UInt64 | Identyfikator zestawu, w którym znajduje się ten moduł. |
Opóźnienie modułu | win:UInt32 | 0x1: moduł neutralny pod względem domeny. 0x2: Moduł ma obraz natywny. 0x4: moduł dynamiczny. 0x8: moduł manifestu. |
Zarezerwowane 1 | win:UInt32 | Pole zarezerwowane. |
ModuleILPath | win:UnicodeString | Ścieżka obrazu wspólnego języka pośredniego (CIL) dla modułu lub nazwa modułu dynamicznego, jeśli jest to zestaw dynamiczny (zakończony wartością null). |
ModuleNativePath | win:UnicodeString | Ścieżka obrazu natywnego modułu, jeśli istnieje (zakończone wartością null). |
ClrInstanceID | win:UInt16 | Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR. |
ManagedPdbSignature | win:GUID | Sygnatura GUID zarządzanej bazy danych programu (PDB), która jest zgodna z tym modułem. (Patrz uwagi). |
ManagedPdbAge | win:UInt32 | Numer wieku zapisany w zarządzanym pliku PDB zgodnym z tym modułem. (Patrz uwagi). |
ManagedPdbBuildPath | win:UnicodeString | Ścieżka do lokalizacji, w której utworzono zarządzany plik PDB zgodny z tym modułem. W niektórych przypadkach może to być tylko nazwa pliku. (Patrz uwagi). |
NativePdbSignature | win:GUID | Podpis GUID pliku PDB generatora obrazów natywnych (NGen), który jest zgodny z tym modułem, jeśli ma to zastosowanie. (Patrz uwagi). |
NativePdbAge | win:UInt32 | Numer wieku zapisany w NGen PDB zgodny z tym modułem, jeśli ma to zastosowanie. (Patrz uwagi). |
NativePdbBuildPath | win:UnicodeString | Ścieżka do lokalizacji, w której został skompilowany NGen PDB zgodny z tym modułem, jeśli ma to zastosowanie. W niektórych przypadkach może to być tylko nazwa pliku. (Patrz uwagi). |
Uwagi
Pola zawierające ciąg "Pdb" w nazwach mogą służyć przez narzędzia profilowania do lokalizowania plików PDB pasujących do modułów załadowanych podczas sesji profilowania. Wartości tych pól odpowiadają danym zapisanym w sekcjach IMAGE_DIRECTORY_ENTRY_DEBUG modułu zwykle używanych przez debugery w celu zlokalizowania plików PDB pasujących do załadowanych modułów.
Nazwy pól rozpoczynające się od "ManagedPdb" odnoszą się do zarządzanego pliku PDB odpowiadającego modułowi CIL wygenerowanemu przez zarządzany kompilator (np. kompilator języka C# lub Visual Basic). Ten plik PDB używa zarządzanego formatu PDB i opisuje, jak elementy z oryginalnego zarządzanego kodu źródłowego, takie jak pliki, numery wierszy i nazwy symboli, mapują na elementy CIL skompilowane w module CIL.
Nazwy pól rozpoczynające się od ciągu "NativePdb" odwołują się do NGen PDB wygenerowanego przez wywołanie metody
NGEN createPDB
. Ten plik PDB używa natywnego formatu PDB i opisuje, jak elementy z oryginalnego zarządzanego kodu źródłowego, takie jak pliki, numery wierszy i nazwy symboli, są mapowane na elementy natywne skompilowane w module NGen.
Zdarzenia modułu domeny CLR
W poniższej tabeli przedstawiono słowo kluczowe i poziom.
Słowo kluczowe do zgłaszania zdarzenia | Zdarzenie | Poziom |
---|---|---|
LoaderKeyword (0x8) |
DomainModuleLoad_V1 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +StartRundownKeyword |
DomainModuleDCStart_V1 |
Informacyjne (4) |
LoaderRundownKeyword (0x8) +EndRundownKeyword |
DomainModuleDCEnd_V1 |
Informacyjne (4) |
W poniższej tabeli przedstawiono informacje o zdarzeniu.
Zdarzenie | Identyfikator zdarzenia | opis |
---|---|---|
DomainModuleLoad_V1 |
151 | Zgłaszane, gdy moduł jest ładowany dla domeny aplikacji. |
DomainModuleDCStart_V1 |
151 | Wylicza moduły załadowane dla domeny aplikacji podczas uruchamiania i są rejestrowane dla wszystkich domen aplikacji. |
DomainModuleDCEnd_V1 |
152 | Wylicza moduły załadowane dla domeny aplikacji podczas końcowego uruchamiania i są rejestrowane dla wszystkich domen aplikacji. |
W poniższej tabeli przedstawiono dane zdarzenia.
Nazwa pola | Typ danych | opis |
---|---|---|
Identyfikator modułu | win:UInt64 | Identyfikuje zestaw, do którego należy ten moduł. |
Identyfikator zestawu | win:UInt64 | Identyfikator zestawu, w którym znajduje się ten moduł. |
AppDomainID | win:UInt64 | Identyfikator domeny aplikacji, w której jest używany ten moduł. |
Opóźnienie modułu | win:UInt32 | 0x1: moduł neutralny pod względem domeny. 0x2: Moduł ma obraz natywny. 0x4: moduł dynamiczny. 0x8: moduł manifestu. |
Zarezerwowane 1 | win:UInt32 | Pole zarezerwowane. |
ModuleILPath | win:UnicodeString | Ścieżka obrazu CIL dla modułu lub nazwa modułu dynamicznego, jeśli jest to zestaw dynamiczny (zakończony wartością null). |
ModuleNativePath | win:UnicodeString | Ścieżka obrazu natywnego modułu, jeśli istnieje (zakończone wartością null). |
ClrInstanceID | win:UInt16 | Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR. |
Zdarzenia zakresu modułów
W poniższej tabeli przedstawiono słowo kluczowe i poziom.
Słowo kluczowe do zgłaszania zdarzenia | Zdarzenie | Poziom |
---|---|---|
PerfTrackKeyWord ) |
ModuleRange |
Informacyjne (4) |
PerfTrackKeyWord |
ModuleRangeDCStart |
Informacyjne (4) |
PerfTrackKeyWord |
ModuleRangeDCEnd |
Informacyjne (4) |
W poniższej tabeli przedstawiono informacje o zdarzeniu.
Zdarzenie | Identyfikator zdarzenia | opis |
---|---|---|
ModuleRange |
158 | To zdarzenie występuje, jeśli załadowany obraz generatora obrazów natywnych (NGen) został zoptymalizowany za pomocą protokołu IBC i zawiera informacje o gorących sekcjach obrazu NGen. |
ModuleRangeDCStart |
160 | Zdarzenie ModuleRange zostało wyzwolone na początku rundown. |
ModuleRangeDCEnd |
161 | Zdarzenie ModuleRange zostało wyzwolone na końcu rundown. |
W poniższej tabeli przedstawiono dane zdarzenia.
Nazwa pola | Typ danych | opis |
---|---|---|
ClrInstanceID | win:UInt16 | Unikatowo identyfikuje określone wystąpienie środowiska CLR w procesie, jeśli załadowano wiele wystąpień środowiska CLR. |
Identyfikator modułu | win:UInt64 | Identyfikuje zestaw, do którego należy ten moduł. |
ZakresBegin | win:UInt32 | Przesunięcie w module, który reprezentuje początek zakresu dla określonego typu zakresu. |
RangeSize | win:UInt32 | Rozmiar określonego zakresu w bajtach. |
RangeType | win:UInt32 | Pojedyncza wartość, 0x4, reprezentująca zakresy zimnych IBC. To pole może reprezentować więcej wartości w przyszłości. |
RangeSize1 | win:UInt32 | Wartość 0 wskazuje złe dane. |
ZakresBegin2 | win:UnicodeString |
Uwagi
Jeśli załadowany obraz NGen w procesie programu .NET Framework został zoptymalizowany przy użyciu protokołu IBC, ModuleRange
zdarzenie zawierające zakresy gorąca w obrazie NGen jest rejestrowane wraz z jego moduleID
i ClrInstanceID
. Jeśli obraz NGen nie jest zoptymalizowany pod kątem protokołu IBC, to zdarzenie nie jest rejestrowane. Aby określić nazwę modułu, to zdarzenie musi być sortowane przy użyciu zdarzeń ETW ładowania modułu.
Rozmiar ładunku dla tego zdarzenia jest zmienny; Count
pole wskazuje liczbę przesunięć zakresu zawartych w zdarzeniu. To zdarzenie musi zostać posortowane ze zdarzeniem systemu Windows IStart
, aby określić rzeczywiste zakresy. Zdarzenie ładowania obrazów systemu Windows jest rejestrowane przy każdym załadowaniu obrazu i zawiera wirtualny adres załadowanego obrazu.
Zdarzenia zakresu modułów są wyzwalane na dowolnym poziomie ETW większym lub równym 4 i są klasyfikowane jako zdarzenia informacyjne.