Udostępnij za pośrednictwem


Wizualizowanie zdarzeń i znaczników EventSource

Przy pomocy programu Concurrency Visualizer można wyświetlać zdarzenia EventSource jako znaczniki oraz kontrolować sposób wyświetlania znaczników.Aby wyświetlić znaczniki EventSource należy zarejestrować GUID dostawcy ETW za pomocą okna dialogowego Ustawienia zaawansowane.Program Concurrency Visualizer posiada domyślne konwencje reprezentowania zdarzeń EventSource jako Znaczniki typu flaga, Znaczniki zakresu oraz Znaczniki komunikatu.Można dostosować sposób wyświetlania zdarzeń EventSource przez dodanie do zdarzenia pól niestandardowych.Aby uzyskać więcej informacji na temat znaczników, zobacz Znaczniki Concurrency Visualizer.Aby uzyskać więcej informacji dotyczących zdarzeń EventSource, zobacz System.Diagnostics.Tracing.

Domyślna wizualizacja zdarzeń EventSource

Domyślnie program Concurrency Visualizer używa następujących konwencji do reprezentowania zdarzeń EventSource.

Typ znacznika

  1. Zdarzenia, które posiadają Opcode win:Start lub win:Stop są traktowane odpowiednio jako początek lub koniec zakresu. Zagnieżdżone lub nakładające się zakresy nie zostaną wyświetlone.Nie zostaną wyświetlone pary zdarzeń, które rozpoczynają się w jednym a kończą w innym wątku.

  2. Zdarzenie, którego Opcode nie jest ani win:Start ani win: Stop jest traktowane jako flaga znacznika, chyba że jego Poziom (pola EVENT_RECORD.EVENT_HEADER.EVENT_DESCRIPTOR) to win:Verbose lub wyższy.

  3. W innych przypadkach zdarzenie jest traktowane jako wiadomość.

Ważność

W poniższej tabeli opisano sposób mapowania poziomu zdarzenia na znacznik ważności.

Poziom ETW

Ważność Concurrency Visualizer

win:LogAlways

Normal

win:Critical

Krytyczny

win:Error

Krytyczny

win:Warning

Wysoki

win:Informational

Normal

win:Verbose

Niski

Większy niż win:verbose

Niski

Nazwa serii

Nazwa zadania zdarzenia używanego dla nazwy serii.Nazwa serii jest pusta, jeśli zadanie nie zostało zdefiniowane dla zdarzenia.

Kategoria

Jeśli poziom to win:Critical lub win:Error wtedy kategoria to Alert (-1).W przeciwnym razie kategoria jest domyślna (0).

Tekst

Jeśli wiadomość tekstowa sformatowana typu prinf została zdefiniowana dla zdarzenia, jest ona wyświetlana jako opis Znacznika.W przeciwnym razie opis jest nazwą zdarzenia i wartością każdego pola ładunku.

Dostosowywanie wizualizacji zdarzeń EventSource

Można dostosować sposób wyświetlania zdarzeń EventSource dodając odpowiednie pola do zdarzenia, jak zostało to opisane w poniższych sekcjach.

Typ znacznika

Użyj pola cvType, bajtu, aby kontrolować rodzaj znacznika, który jest używany do reprezentacji zdarzenia.Oto dostępne wartości dla cvType:

wartość cvType

Wynikowy typ znacznika

0

Wiadomość

1

Początek zakresu

2

Koniec zakresu

3

Flaga

Wszystkie inne wartości

Wiadomość

Ważność

Można użyć pola cvImportance, bajtu, aby kontrolować ustawienie ważności dla zdarzenia EventSource.Jednak zaleca się, aby kontrolować wyświetlaną ważność zdarzenia przy użyciu jego poziomu.

wartość cvImportance

Ważność Concurrency Visualizer

0

Normal

1

Krytyczny

2

Wysoki

3

Wysoki

4

Normal

5

Niski

Wszystkie inne wartości

Niski

Nazwa serii

Użyj pola zdarzeń cvSeries, ciągu, aby kontrolować nazwę serii, którą ustawia program Concurrency Visualizer dla zdarzenia EventSource.

Kategoria

Użyj pola cvCategory, bajtu, aby kontrolować kategorię, którą ustawia program Concurrency Visualizer dla zdarzenia EventSource.

Tekst

Użyj pola cvTextW, ciągu, aby kontrolować opis, który ustawia program Concurrency Visualizer dla zdarzenia EventSource.

SpanID

Użyj pola cvSpanId, wartość całkowita, aby dopasować pary zdarzeń.Wartość dla każdej pary zdarzeń uruchomienia i zatrzymania, która reprezentuje zakres musi być unikatowa.Zazwyczaj dla kodu współbieżnego wymaga to wykorzystania prymitywów synchronizacji takich jak Exchange w celu zapewnienia poprawnego klucza (wartość jest używana do CvSpanID).

[!UWAGA]

Użycie SpanID, aby zagnieździć zakresy, umożliwić im częściowe pokrywanie się w tym samym wątku lub umożliwienie uruchomienie w jednym wątku i zakończenie w innym nie jest obsługiwane.

Zobacz też

Koncepcje

Znaczniki Concurrency Visualizer