Поделиться через


Задача TraceWPP

Пакет драйверов Windows (WDK) предоставляет задачу TraceWPP, которая позволяет запускать средство tracewpp.exe при сборке драйвера с помощью MSBuild. Средство tracewpp.exe используется для реализации трассировки программного обеспечения WPP.

WppEnabled — это новые метаданные для элемента ClCompile, обеспечивающие трассировку исходных файлов. Задача Wpp проходит через все коллекции элементов ClCompile и вызывает tracewpp.exe для каждого элемента, для которого для метаданных WppEnabled задано значение TRUE.

Метаданные WppEnabled были добавлены в элемент ClCompile, так как задача WPP выполняется с тем же типом входных файлов, что и задача CL, в данном случае C, .cpp и H-файлах.

Примечание Доступ к метаданным элемента для tracewpp можно получить с помощью элемента ClCompile в файлах проекта. MSBuild использует элемент TraceWpp внутри целевого объекта, чтобы передать его задаче.

В следующем примере показано, как изменить метаданные в файле .vcxproj.

<ItemGroup>
    <ClCompile Include="a.c" />
      <WppEnabled>false</WppEnabled>
    <ClCompile Include="b.c">
        <WppEnabled>true</WppEnabled>
        <WppKernelMode>true</WppKernelMode>
        <WppAdditionalIncludeDirectories>c:\test\</WppAdditionalIncludeDirectories>
    </ClCompile>
    <ClCompile Include="test1.c" />
    <ClCompile Include="test2.c">
        <WppEnabled>true</WppEnabled>
        <WppDllMacro>true</WppDllMacro>
    </ClCompile>
</ItemGroup>

Вызов командной строки будет следующим:

tracewpp.exe  km /Ic:\test\b.c
tracewpp.exe  dll test2.c

В приведенном выше примере показано, что MSBuild вызывает tracewpp.exe только в b.c и test2.c, так как для метаданных WppEnabled задано значение TRUE для этих входных данных. Кроме того, обратите внимание, что метаданные для этих двух входных данных отличаются. Поэтому для этих входных данных переключатели также будут отличаться. Другими словами, можно вызывать каждый вход с собственным набором метаданных.

Параметр задачи WPP Метаданные элементов Переключатель инструментов
Источники

Требуется параметр ITaskItem []. Указывает список исходных файлов.

@(TraceWpp)
AddAlternateNameToMessageGUID

Необязательный строковый параметр. Задает альтернативное понятное имя GUID сообщения для сообщений, поступающих от этого поставщика трассировки.

%(TraceWpp.WppAddAlternateNameToMessageGUID) -o:String
AdditionalConfigurationFile

Необязательный строковый параметр. Указывает дополнительный файл конфигурации. WPP использует указанный файл в дополнение к файлу по умолчанию, defaultwpp.ini.

%(TraceWpp.WppAdditionalConfigurationFile) -ini:Path
AdditionalIncludeDirectories

Необязательный параметр типа string[] . Добавляет каталог в список каталогов, в которых WPP ищет включаемые файлы.

%(TraceWpp.WppAdditionalIncludeDirectories) -I
AlternateConfigurationFile

Необязательный строковый параметр. Указывает альтернативный файл конфигурации. WPP использует этот файл вместо файла defaultwpp.ini.

%(TraceWpp.WppAlternateConfigurationFile) -defwpp:Path
GenerateUsingTemplateFile

Необязательный строковый параметр. Для каждого исходного файла, который обрабатывает WPP с именем, указанным между фигурными скобками {}, WPP создает другой файл с указанным расширением имени файла.

%(TraceWpp.WppGenerateUsingTemplateFile) -gen{File.tpl}*.ext
MinimalRebuildFromTracking

Необязательный логический параметр. Если значение равно TRUE, WPP выполняет отслеживаемую добавочную сборку. В противном случае WPP выполняет перестроение.

%(TraceWpp.WppMinimalRebuildFromTracking)
NumericBaseForFormatStrings

Необязательный параметр типа int. Устанавливает числовое основание для нумеровки строк формата.

%(TraceWpp.WppNumericBaseForFormatStrings) -argbase:Number
AddControlGUID

Необязательный строковый параметр. Определяет макрос WPP_CONTROL_GUIDS с указанным GUID элемента управления и WPP_DEFINE_BIT записями с именами Error, Unusual и Noise.

%(TraceWpp.WppAddControlGUID) -ctl:GUID
AdditionalOptions

Необязательный строковый параметр. Список параметров командной строки.

%(TraceWpp.WppAdditionalOptions)
ConfigurationDirectories

Необязательный параметр типа string[] . Указывает расположение файлов конфигурации и шаблонов.

%(TraceWpp.WppConfigurationDirectories) -cfgdir:[Path]
DllMacro

Необязательный логический параметр. Определяет макрос WPP_DLL.

%(TraceWpp.WppDllMacro) -Dll
Расширения файлов

Необязательный параметр типа string[] . Указывает типы файлов, распознаваемые WPP как исходные файлы. WPP игнорирует файлы с другим расширением имени файла.

%(TraceWpp.WppFileExtensions) -ext:.ext1 [.ext2]
IgnoreExclamationmarks

Необязательный логический параметр. Предписывает WPP игнорировать восклицательные знаки, также известные как "shrieks", используемые в сложном форматировании, например %!метка времени!%.

%(TraceWpp.WppIgnoreExclamationmarks) -noshrieks
KernelMode

Необязательный логический параметр. Определяет макрос WPP_KERNEL_MODE, который отслеживает компоненты режима ядра. По умолчанию трассируются только компоненты пользовательского режима.

%(TraceWpp.WppKernelMode) -Км
OutputDirectory

Необязательный строковый параметр. Указывает каталог для выходных файлов, создаваемых WPP.

%(TraceWpp.WppOutputDirectory) -odir:Path
PreprocessorDefinitions

Необязательный параметр типа string[] . Определяет символ предобработки для исходного файла.

%(TraceWpp.WppPreprocessorDefinitions) /D
PreserveExtensions

Необязательный параметр типа string[] . Сохраняет указанные расширения имен файлов при создании файлов TMH.

%(TraceWpp.WppPreserveExtensions) -preserveext:ext1[,ext2]
ScanConfigurationData

Необязательный параметр типа string. Выполняет поиск данных конфигурации, таких как пользовательские типы данных, в файле, который не является файлом конфигурации, а также в defaultwpp.ini.

%(TraceWpp.WppScanConfigurationData) -scan:File
SearchString

Необязательный строковый параметр. Направляет WPP на поиск в исходных файлах указанной строки для запуска трассировки.

%(TraceWpp.WppSearchString) -lookfor:String
ToolPath

Необязательный строковый параметр. Позволяет указать полный путь к папке, в которой находится средство.

$(WPPToolPath)
TraceFunction

Необязательный параметр типа string[] . Задает функции, которые затем можно использовать для создания сообщений трассировки.

%(TraceWpp.WppTraceFunction) -func:FunctionDescription
TrackerLogDirectory

Необязательный параметр типа string. Каталог журналов для средства отслеживания для записи журналов tlog.

%(TraceWpp.WppTrackerLogDirectory)
TrackFileAccess

Необязательный логический параметр. Если значение равно true, отслеживает шаблоны доступа к файлам для этой задачи.

$(TrackFileAccess)

Препроцессор WPP

Трассировка программного обеспечения WPP