Wizualizowanie zdarzeń eventsource jako znaczników
Wizualizator współbieżności może wyświetlać zdarzenia EventSource jako znaczniki i kontrolować sposób wyświetlania znaczników. Aby wyświetlić znaczniki źródła zdarzeń, zarejestruj identyfikator GUID dostawcy ETW przy użyciu okna dialogowego Zaawansowane Ustawienia. Wizualizator współbieżności ma domyślne konwencje reprezentujące zdarzenia EventSource jako znaczniki flagi, znaczniki zakresu i znaczniki komunikatów. Możesz dostosować sposób wyświetlania zdarzeń eventsource przez dodanie pól niestandardowych do zdarzeń. Aby uzyskać więcej informacji na temat znaczników, zobacz Concurrency Visualizer Markers (Znaczniki współbieżności wizualizatora). Aby uzyskać więcej informacji na temat zdarzeń usługi EventSource, zobacz System.Diagnostics.Tracing.
Domyślna wizualizacja zdarzeń EventSource
Domyślnie wizualizator współbieżności używa następujących konwencji do reprezentowania zdarzeń EventSource.
Typ znacznika
Zdarzenia, które mają win:Start lub win:Stop, są traktowane odpowiednio jako początek lub koniec zakresu. Nie można wyświetlić zagnieżdżonych lub nakładających się zakresów. Pary zdarzeń rozpoczynające się w jednym wątku i kończące się na innym nie mogą być wyświetlane.
Zdarzenie, którego kod opcode nie jest ani win:Start, ani win:Stop, jest traktowane jako flaga znacznika, chyba że jego poziom (pole EVENT_RECORD. EVENT_HEADER. EVENT_DESCRIPTOR) to win:Verbose lub nowszy.
We wszystkich innych przypadkach zdarzenie jest traktowane jako komunikat.
Ważność
W poniższej tabeli zdefiniowano sposób mapowania poziomu zdarzeń na ważność znacznika.
Poziom ETW | Znaczenie wizualizatora współbieżności |
---|---|
win:LogAlways | Normalna |
win:Critical | Krytyczne |
win:Error | Krytyczne |
win:Warning | Maksimum |
win:Informational | Normalna |
win:Verbose | Minimum |
Większe niż win:verbose | Minimum |
Nazwa serii
Nazwa zadania zdarzenia jest używana dla nazwy serii. Nazwa serii jest pusta, jeśli nie zdefiniowano zadania dla zdarzenia.
Kategoria
Jeśli poziom to win:Critical lub win:Error, kategoria to Alert (-1). W przeciwnym razie kategoria jest domyślna (0).
Text
Jeśli dla zdarzenia zdefiniowano komunikat tekstowy w formacie printf, jest wyświetlany jako opis znacznika. W przeciwnym razie opis jest nazwą zdarzenia i wartością każdego pola ładunku.
Dostosowywanie wizualizacji zdarzeń EventSource
Możesz dostosować sposób wyświetlania zdarzeń eventsource, dodając odpowiednie pola do zdarzenia, zgodnie z opisem w poniższych sekcjach.
Typ znacznika
cvType
Użyj pola , bajtu, aby kontrolować rodzaj znacznika używanego do reprezentowania zdarzenia. Poniżej przedstawiono dostępne wartości 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żesz użyć cvImportance
pola bajtowego, aby kontrolować ustawienie ważności zdarzenia EventSource. Zalecamy jednak kontrolowanie wyświetlanej ważności zdarzenia przy użyciu jego poziomu.
wartość ważności cv | Znaczenie wizualizatora współbieżności |
---|---|
0 | Normalna |
1 | Krytyczne |
2 | Maksimum |
3 | Maksimum |
100 | Normalna |
5 | Minimum |
Wszystkie inne wartości | Minimum |
Nazwa serii
cvSeries
Użyj pola zdarzenia, ciągu, aby kontrolować nazwę serii, którą program Concurrency Visualizer nadaje zdarzeniu EventSource.
Kategoria
cvCategory
Użyj pola , bajtu, aby kontrolować kategorię, którą wizualizator współbieżności nadaje zdarzeń EventSource.
Text
cvTextW
Użyj pola , ciągu, aby kontrolować opis, który wizualizator współbieżności nadaje zdarzeń EventSource.
SpanID
Użyj pola cvSpanId , int, aby dopasować pary zdarzeń. Wartość dla każdej pary zdarzeń uruchamiania/zatrzymywania reprezentujących zakres musi być unikatowa. Zazwyczaj w przypadku kodu współbieżnego wymaga to użycia elementów pierwotnych synchronizacji, takich jak Exchange upewnienie się, że klucz (wartość używana dla identyfikatora CvSpanID) jest poprawna.
Uwaga
Użycie funkcji SpanID do zagnieżdżania zakresów, umożliwia częściowe nakładanie się na ten sam wątek lub zezwalanie na ich uruchamianie w jednym wątku i końcenie na drugim nie jest obsługiwane.