Сбор и просмотр данных TraceLogging
Вы можете записывать и просматривать данные TraceLoggging с помощью последних внутренних версий средств производительности Windows (WPT). Перед публикацией инструментирования необходимо протестировать код поставщика TraceLogging, чтобы убедиться, что данные о событиях создаются и создаются значимые данные в соответствующее время.
Процесс проверки правильности инструментирования состоит из следующих двух этапов:
- Запись трассировки с помощью средства записи производительности Windows (wpr.exe или wprui.exe).
- Просмотр трассировки с помощью Анализатор производительности Windows (wpa.exe).
Примечание Для Windows Phone можно также использовать Tracelog.exe и Xperf.exe для записи трассировки. См. раздел "Запись трассировки на телефоне (с помощью Tracelog и XPerf)" ниже.
Необходимые условия
Средства WPR и WPA должны быть совместимы с версией TraceLogging, с которым вы связаны. Если вы не можете записать или декодировать события, это может быть связано с тем, что инструменты не совпадают и несовместимы.
Сбор данных трассировки с помощью WPR
Создайте или измените профиль WPR (.wprp) для TraceLoggingProvider.
Можно использовать следующий пример. Сохраните содержимое в файл с расширением .wprp. Замените разделы TODO соответствующими значениями для вашего поставщика. Например, если вы зарегистрировали поставщик по guid, укажите guid в этом файле.
Примечание Для поставщиков режима ядра добавьте NonPagedMemory="true" в элемент EventProvider Id. См. комментарий в следующем примере XML.
Пример файла 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>
Для поставщиков режима ядра необходимо добавить атрибут NonPagedMemory="true" в элемент EventProvider Id.
<EventProvider Id="EventProvider_myTraceLoggingProviderKM" Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/>
Сохраните файл с расширением имени файла (. WPRP).
Запустите запись с помощью WPR из окна командной строки.
<path to wpr>\wpr.exe -start GeneralProfile -start yourTraceLoggingProvider.wprp
GeneralProfile будет записывать системные события. Для общей отладки рекомендуется записывать системные события вместе с событиями от поставщика.
Запустите сценарий тестирования (загрузите и выгрузите драйвер или компонент для активации событий).
Остановите запись трассировки и объедините все записи.
<path to wpr>\wpr.exe -stop GeneralProfile -stop yourTraceCaptureFile.etl description
Вы также можете использовать пользовательский интерфейс Windows Performance Recorder (Wprui.exe) для сбора данных трассировки.
<path to wpr>\wprui.exe
- Если параметры скрыты, в окне WPR щелкните Дополнительные параметры.
- Щелкните Добавить профиль и перейдите к расположению WPRP-файла.
- Выберите WPRP-файл и нажмите кнопку Открыть. WPR проверит схему XML вашего профиля.
- Нажмите кнопку Пуск и запустите тестовый сценарий.
- Нажмите кнопку Сохранить , чтобы объединить результаты и сохранить их в файл. Если вы используете пользовательский интерфейс WPR, вы также можете открыть ETL-файл журнала в WPA.
Запись трассировки на телефоне (с помощью Tracelog и XPerf)
Запустите запись трассировки поставщика.
cmdd tracelog '-start test -f c:\test.etl -guid #providerguid'
Запустите тестовые сценарии для регистрации событий.
Остановка отслеживания трассировки.
cmdd tracelog '-stop test'
Объединить результаты трассировки.
cmdd xperf -merge c:\test.etl c:\testmerged.etl
Получите объединенный файл журнала.
getd c:\testmerged.etl
Просмотр данных TraceLogging с помощью WPA
В настоящее время WPA — это единственное средство просмотра, которое можно использовать для просмотра ETL-файлов, создаваемых TraceLogging.
Запустите WPA.
<path to wpr>\wpa.exe
Загрузите файл трассировки (.etl).
Просмотр событий поставщика. В Обозреватель Graph разверните узел Системное действие.
Дважды щелкните универсальные события , чтобы просмотреть их в представлении Анализ.
В представлении Анализ найдите события от поставщика, чтобы убедиться, что ведение журнала работает.
В столбце Имя поставщика таблицы Универсальные события найдите и выберите строку с именем поставщика.
Вы можете щелкнуть заголовок столбца для сортировки по имени столбца, что может упростить поиск поставщика. Найдя поставщика, щелкните имя правой кнопкой мыши и выберите Фильтр по выбору.