Задача 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) |