Udostępnij przez


Przechwytywanie i wyświetlanie danych tracelogging

Dane TraceLoggging można przechwytywać i wyświetlać przy użyciu najnowszych wewnętrznych wersji narzędzi Windows Performance Tools (WPT). Przed opublikowaniem instrumentacji należy przetestować kod dostawcy TraceLogging, aby upewnić się, że dane zdarzenia są tworzone i dostarczają znaczące dane w odpowiednim czasie.

Proces sprawdzania, czy instrumentacja jest poprawna, obejmuje następujące dwa kroki:

  • Przechwytywanie śledzenia za pomocą narzędzia Windows Performance Recorder (wpr.exe lub wprui.exe).
  • Wyświetl ślad za pomocą analizatora wydajności systemu Windows (wpa.exe).

Uwaga dla systemu Windows Phone można również użyć Tracelog.exe i Xperf.exe do rejestrowania śladu. Zobacz "Aby przechwycić ślad na telefonie (przy użyciu Tracelog i XPerf)" poniżej.

wymagania wstępne

Narzędzia WPR i WPA muszą być zgodne z wersją TraceLogging, z którą jesteś powiązany. Jeśli nie możesz przechwycić lub zdekodować swoich zdarzeń, może to być spowodowane tym, że narzędzia nie są odpowiednie i nie są zgodne.

Aby przechwycić dane śledzenia za pomocą funkcji WPR

  1. Utwórz lub edytuj profil WPR (.wprp) dla TraceLoggingProvider.

    Możesz użyć poniższego przykładu. Zapisz zawartość w pliku z rozszerzeniem nazwy pliku wprp. Zastąp sekcje TODO odpowiednimi wartościami dostawcy. Jeśli na przykład zarejestrowano dostawcę za pomocą identyfikatora GUID, określ identyfikator GUID w tym pliku.

    Uwaga Dla dostawców trybu jądra dodaj NonPagedMemory="true" do atrybutu EventProvider Id, zobacz komentarz w poniższym przykładzie XML.

Przykładowy plik WPRP:

<?xml version="1.0" encoding="utf-8"?>
<!-- TODO: 
1. Find and replace "WorkshopTraceLoggingProvider" with your component name.
2. See TODO below to update GUID for your event provider
-->
<WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" 
    Copyright="Microsoft Corporation" Company="Microsoft Corporation">
  <Profiles>
    <EventCollector Id="EventCollector_WorkshopTraceLoggingProvider" 
      Name="WorkshopTraceLoggingProviderCollector">
      <BufferSize Value="64" />
      <Buffers Value="4" />
    </EventCollector>

<!-- TODO: 
 1. Update Name attribute in EventProvider xml element with your provider GUID, 
    or if you specify an EventSource C# provider or call TraceLoggingRegister(...) 
    without a GUID, use star(*) before your provider name, 
    eg: Name="*MyEventSourceProvider" which will enable your provider appropriately.
 2. This sample lists more than 1 EventProvider xml element and references them again 
    in a Profile with EventProviderId xml element. For your component wprp, enable 
    the required number of providers and fix the Profile xml element appropriately
--> 
    <EventProvider Id="EventProvider_WorkshopTraceLoggingProvider" 
      Name="f9bc6c5d-4b98-43b5-90a1-1d0c8f45bf5a" />
<!-- For Kernel Mode providers, add NonPagedMemory="true" attribute to the 
  EventProvider Id element:

  Example:
  <EventProvider Id="EventProvider_UMDFReflector" 
    Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/> 

-->

    <Profile Id="WorkshopTraceLoggingProvider.Verbose.File" 
      Name="WorkshopTraceLoggingProvider" Description="WorkshopTraceLoggingProvider" 
      LoggingMode="File" DetailLevel="Verbose">
      <Collectors>
        <EventCollectorId Value="EventCollector_WorkshopTraceLoggingProvider">
          <EventProviders>
<!-- TODO:
 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider 
    xml element above
-->
            <EventProviderId Value="EventProvider_WorkshopTraceLoggingProvider" />
          </EventProviders>
        </EventCollectorId>
      </Collectors>
    </Profile>

    <Profile Id="WorkshopTraceLoggingProvider.Light.File" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="File" 
      DetailLevel="Light" />

    <Profile Id="WorkshopTraceLoggingProvider.Verbose.Memory" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="Memory" 
      DetailLevel="Verbose" />

    <Profile Id="WorkshopTraceLoggingProvider.Light.Memory" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="Memory" 
      DetailLevel="Light" />

  </Profiles>
</WindowsPerformanceRecorder>
  1. W przypadku dostawców trybu kernel należy dodać atrybut NonPagedMemory="true" do elementu Identyfikator EventProvider.

    <EventProvider Id="EventProvider_myTraceLoggingProviderKM" 
      Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/>
    
  2. Zapisz plik przy użyciu rozszerzenia nazwy pliku (. WPRP).

  3. Uruchom przechwytywanie przy użyciu funkcji WPR w oknie wiersza polecenia.

    <path to wpr>\wpr.exe -start GeneralProfile -start  yourTraceLoggingProvider.wprp
    

    Plik GeneralProfile przechwytuje zdarzenia systemowe. W przypadku debugowania ogólnego dobrym pomysłem jest przechwytywanie zdarzeń systemowych wraz ze zdarzeniami od dostawcy.

  4. Uruchom scenariusz testowy (załaduj i rozładuj sterownik lub komponent, aby wyzwolić zdarzenia).

  5. Zatrzymaj przechwytywanie i scal wszystkie nagrania.

    <path to wpr>\wpr.exe -stop GeneralProfile -stop  yourTraceCaptureFile.etl description
    

Do zbierania danych śledzenia można również użyć interfejsu użytkownika narzędzia Windows Performance Recorder (Wprui.exe).

<path to wpr>\wprui.exe
  1. W oknie WPR, jeśli opcje są ukryte, kliknij Więcej Opcji.
  2. Kliknij Dodaj profil i przejdź do lokalizacji pliku .wprp.
  3. Wybierz plik .wprp i kliknij Otwórz. Funkcja WPR zweryfikuje schemat XML profilu.
  4. Kliknij pozycję Uruchom i uruchom scenariusz testowy.
  5. Kliknij Zapisz, aby scalić wyniki i zapisać je w pliku. Jeśli używasz interfejsu użytkownika funkcji WPR, możesz również otworzyć plik dziennika .etl w WPA.

Aby przechwycić ślad na telefonie (przy użyciu usługi Tracelog i XPerf)

  1. Rozpocznij przechwytywanie danych śledzenia swojego dostawcy usług.

    cmdd tracelog '-start test -f c:\test.etl -guid #providerguid'
    
  2. Uruchom scenariusze testowe, aby rejestrować zdarzenia.

  3. Zatrzymaj przechwytywanie śledzenia.

    cmdd tracelog '-stop test'
    
  4. Połącz wyniki śledzenia.

    cmdd xperf -merge c:\test.etl c:\testmerged.etl
    
  5. Pobierz scalony plik dziennika.

    getd c:\testmerged.etl
    

Wyświetlanie danych śledzenia przy użyciu usługi WPA

Obecnie usługa WPA jest jedyną przeglądarką, której można użyć do wyświetlania plików etl generowanych przez usługę TraceLogging.

  1. Uruchom program WPA.

    <path to wpr>\wpa.exe
    
  2. Załaduj plik śledzenia (etl).

  3. Wyświetl wydarzenia dostawcy. W Eksploratorze Graph rozwiń Działanie systemu.

  4. Kliknij dwukrotnie zdarzenia ogólne, aby wyświetlić je w widoku Analizy.

  5. W widoku Analiza znajdź zdarzenia od dostawcy, aby sprawdzić, czy rejestrowanie działa.

    W kolumnie nazwa dostawcy tabeli Zdarzenia ogólne znajdź i wybierz wiersz z nazwą dostawcy.

    Możesz kliknąć nagłówek kolumny, aby sortować według nazwy kolumny, co może ułatwić znalezienie dostawcy. Po znalezieniu dostawcy kliknij prawym przyciskiem myszy nazwę i wybierz pozycję Filtruj według wyboru.