Udostępnij za pośrednictwem


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.

Zobacz też