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


Пакет SDK Аналитики сборок C++: таблица событий

Пакет SDK для Сборки C++ совместим с Visual Studio 2017 и более поздними версиями. Чтобы увидеть документацию для этих версий, установите в данной статье селектор Версия Visual Studio в Visual Studio 2017 и более поздних версий. Он находится в верхней части оглавления на этой странице.

События компилятора

COMPILER
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
BACK_END_PASS

События внешнего интерфейса компилятора

C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODULE
HEADER_UNIT
PRECOMPILED_HEADER

События внутренней части компилятора

C2_DLL
WHOLE_PROGRAM_ANALYSIS
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
THREAD
FUNCTION
FORCE_INLINEE

События компоновщика

LINKER
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
EXECUTABLE_IMAGE_OUTPUT
EXP_OUTPUT
IMP_LIB_OUTPUT
LIB_OUTPUT
PASS1
PRE_LTCG_OPT_REF
LTCG
OPT_REF
OPT_ICF
OPT_LBR
PASS2

Таблица событий

Мероприятие Свойство Description
BACK_END_PASS Тип Действие (Activity)
Родители COMPILER
Children C2_DLL
Свойства — Абсолютный путь к входному исходному файлу
— Абсолютный путь к результирующему объектному файлу
Классы фиксации Деятельность
CompilerPass
BackEndPass
Description Возникает при запуске и окончании прохода внутренней части компилятора. Этот проход отвечает за оптимизацию проанализированного исходного кода C/C++ и его преобразование в машинный код.
BOTTOM_UP Тип Действие (Activity)
Родители WHOLE_PROGRAM_ANALYSIS
Children нет
Свойства нет
Классы фиксации Деятельность
BottomUp
Description Возникает при запуске и окончании этапа анализа всей программы снизу вверх.
C1_DLL Тип Действие (Activity)
Родители FRONT_END_PASS
Children FRONT_END_FILE
SYMBOL_NAME
TEMPLATE_INSTANTIATION
Свойства нет
Классы фиксации Деятельность
C1DLL
Description Возникает при запуске и окончании вызова c1.dll или c1xx.dll. Эти библиотеки DLL являются внешним интерфейсом компилятора для C и C++. Они вызываются только драйвером компилятора (cl.exe).
C2_DLL Тип Действие (Activity)
Родители BACK_END_PASS
LTCG
Children CODE_GENERATION
WHOLE_PROGRAM_ANALYSIS
Свойства нет
Классы фиксации Деятельность
C2DLL
Description Возникает при запуске и окончании вызова c2.dll. Эта библиотека DLL является внутренней частью компилятора. Она вызывается драйвером компилятора (cl.exe). Также она вызывается компоновщиком (link.exe), если используется создание кода во время компоновки.
CODE_GENERATION Тип Действие (Activity)
Родители C2_DLL
Children FUNCTION
THREAD
Свойства нет
Классы фиксации Деятельность
CodeGeneration
Description Возникает при запуске и прекращении этапа создания кода в серверной части.
COMMAND_LINE Тип Простое событие
Родители COMPILER
LINKER
Children нет
Свойства — Командная строка, которая использовалась для вызова cl.dll или link.dll.
Классы фиксации SimpleEvent
CommandLine
Description Возникает, когда компилятор и компоновщик завершают анализ командной строки. Проанализированная командная строка включает все параметры cl.dll или link.dll, передаваемые через файл ответов. Он также включает параметры для cl.exe и link.exe , передаваемых через переменные среды, такие как CL, _CL_, LINK и _LINK_.
COMPILER Тип Действие (Activity)
Родители нет
Children BACK_END_PASS
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
Свойства — Версия компилятора
— Рабочий каталог
— Абсолютный путь к вызываемому файлу cl.exe
Классы фиксации Деятельность
Вызов
Компилятор
Description Возникает при запуске и окончании вызова cl.exe.
ENVIRONMENT_VARIABLE Тип Простое событие
Родители COMPILER
LINKER
Children нет
Свойства — Имя переменной среды.
— Значение переменной среды.
Классы фиксации SimpleEvent
EnvironmentVariable
Description Возникает один раз для каждой существующей переменной среды в момент вызова cl.dll или link.dll.
EXECUTABLE_IMAGE_OUTPUT Тип Простое событие
Родители LINKER
Children нет
Свойства — Абсолютный путь к выходному файлу библиотеки DLL или исполняемого файла.
Классы фиксации SimpleEvent
FileOutput
ExecutableImageOutput
Description Возникает, когда на вход компоновщика поступает библиотека DLL или исполняемый файл образа.
EXP_OUTPUT Тип Простое событие
Родители LINKER
Children нет
Свойства — Абсолютный путь к выходному файлу .exp.
Классы фиксации SimpleEvent
FileOutput
ExpOutput
Description Возникает, когда в качестве выхода компоновщику предлагается файл .exp.
FILE_INPUT Тип Простое событие
Родители COMPILER
LINKER
Children нет
Свойства — Абсолютный путь к входному файлу
— Тип входного файла
Классы фиксации SimpleEvent
FileInput
Description Возникает, чтобы объявить входные данные для cl.dll или link.dll.
FORCE_INLINEE Тип Простое событие
Родители FUNCTION
Children нет
Свойства — Имя принудительно встраиваемой функции.
— Размер принудительно встраиваемой функции, выраженный в числе инструкций промежуточного языка.
Классы фиксации Деятельность
ForceInlinee
Description Возникает, когда функция принудительно встраивается в другую функцию с помощью ключевого слова __forceinline.
FRONT_END_FILE Тип Действие (Activity)
Родители C1_DLL
FRONT_END_FILE
Children FRONT_END_FILE
TEMPLATE_INSTANTIATION
Свойства — Абсолютный путь к файлу.
Классы фиксации Деятельность
FrontEndFile
Description Возникает при запуске и остановке обработки файла внешним интерфейсом компилятора. Это событие является рекурсивным. Рекурсия происходит, когда внешний интерфейс анализирует включенные файлы.
FRONT_END_PASS Тип Действие (Activity)
Родители COMPILER
Children C1_DLL
MODULE
HEADER_UNIT
PRECOMPILED_HEADER
Свойства — Абсолютный путь к входному исходному файлу
— Абсолютный путь к результирующему объектному файлу
Классы фиксации Деятельность
CompilerPass
FrontEndPass
Description Возникает при запуске и окончании этапа внешнего интерфейса компилятора. Этот этап включает анализ исходного кода C или C++ и его преобразование в промежуточный язык.
FUNCTION Тип Действие (Activity)
Родители CODE_GENERATION
THREAD
TOP_DOWN
Children FORCE_INLINEE
Свойства — Имя функции.
Классы фиксации Деятельность
Функция
Description Возникает при запуске и завершении создания кода для функции.
HEADER_UNIT Тип Действие (Activity)
Родители FRONT_END_PASS
Children нет
Свойства нет
Классы фиксации SimpleEvent
TranslationUnitType
HeaderUnit
Description Происходит в начале прохода внешнего интерфейса и представляет обработку единицы трансляции единицы заголовка.
IMP_LIB_OUTPUT Тип Простое событие
Родители LINKER
Children нет
Свойства — Абсолютный путь к выходному файлу библиотеки импорта.
Классы фиксации SimpleEvent
FileOutput
ImpLibOutput
Description Возникает, когда в качестве выхода компоновщику предлагается библиотека импорта.
LIB_OUTPUT Тип Простое событие
Родители LINKER
Children нет
Свойства — Абсолютный путь к выходному файлу статической библиотеки.
Классы фиксации SimpleEvent
FileOutput
LibOutput
Description Возникает, когда в качестве выхода компоновщику предлагается статическая библиотека.
LINKER Тип Действие (Activity)
Родители нет
Children COMMAND_LINE
ENVIRONMENT_VARIABLE
EXECUTABLE_IMAGE_OUTPUT
EXP_OUTPUT
FILE_INPUT
IMP_LIB_OUTPUT
LIB_OUTPUT
PASS1
PASS2
Свойства — Версия компоновщика
— Рабочий каталог
— Абсолютный путь к вызываемому файлу link.exe
Классы фиксации Деятельность
Вызов
Компоновщик
Description Возникает при запуске и окончании вызова link.exe.
LTCG Тип Действие (Activity)
Родители PASS1
Children C2_DLL
Свойства нет
Классы фиксации Деятельность
LTCG
Description Возникает при запуске и окончании этапа создания кода во время компоновки.
MODULE Тип Действие (Activity)
Родители FRONT_END_PASS
Children нет
Свойства нет
Классы фиксации SimpleEvent
TranslationUnitType
Модуль
Description Происходит в начале прохода внешнего интерфейса и представляет обработку единицы трансляции модуля.
OBJ_OUTPUT Тип Простое событие
Родители COMPILER
Children нет
Свойства — Абсолютный путь к выходному файлу .obj.
Классы фиксации SimpleEvent
FileOutput
ObjOutput
Description Возникает один раз для каждого выходного файла .obj, создаваемого cl.exe.
OPT_ICF Тип Действие (Activity)
Родители PASS1
Children нет
Свойства нет
Классы фиксации Деятельность
OptICF
Description Возникает при запуске и завершении этапа оптимизации компоновщика для удаления идентичных COMDAT (/OPT:ICF).
OPT_LBR Тип Действие (Activity)
Родители PASS1
Children нет
Свойства нет
Классы фиксации Деятельность
OptLBR
Description Возникает при запуске и окончании этапа оптимизации компоновщика для длинной ветви (/OPT:LBR).
OPT_REF Тип Действие (Activity)
Родители PASS1
Children нет
Свойства нет
Классы фиксации Деятельность
OptRef
Description Возникает при запуске и окончании этапа оптимизации компоновщика для удаления функций и данных без ссылок на них (/OPT:REF).
PASS1 Тип Действие (Activity)
Родители LINKER
Children LTCG
OPT_ICF
OPT_LBR
OPT_REF
Свойства нет
Классы фиксации Деятельность
Pass1
Description Возникает при запуске и окончании первого этапа компоновщика.
PASS2 Тип Действие (Activity)
Родители LINKER
Children нет
Свойства нет
Классы фиксации Деятельность
Pass2
Description Возникает при запуске и окончании второго этапа компоновщика.
PRECOMPILED_HEADER Тип Действие (Activity)
Родители FRONT_END_PASS
Children нет
Свойства нет
Классы фиксации SimpleEvent
TranslationUnitType
PrecompiledHeader
Description Происходит в начале прохода внешнего интерфейса и представляет обработку единицы трансляции предкомпилированного заголовка (PCH).
PRE_LTCG_OPT_REF Тип Действие (Activity)
Родители PASS1
Children нет
Свойства нет
Классы фиксации Деятельность
PreLTCGOptRef
Description Возникает при запуске и окончании этапа оптимизации компоновщика, который удаляет функции и данные без ссылок на них (/OPT:REF). Это происходит до создания кода во время компоновки.
SYMBOL_NAME Тип Простое событие
Родители C1_DLL
Children нет
Свойства — Ключ типа
— Имя типа
Классы фиксации SimpleEvent
SymbolName
Description Возникает в конце первого этапа внешнего интерфейса, по одному разу для каждого типа, участвующего в создании экземпляров шаблона. Этот ключ является числовым идентификатором типа, а имя — его текстовым представлением. Ключи типа уникальны в пределах анализируемой трассировки. Но разные ключи, созданные на разных этапах внешнего интерфейса компилятора, могут указывать на один и тот же тип. Чтобы сравнивать типы, полученные на разных этапах внешнего интерфейса компилятора, нужно использовать их имена. События SYMBOL_NAME возникают в конце этапа внешнего интерфейса компилятора, после создания всех экземпляров шаблонов.
TEMPLATE_INSTANTIATION Тип Действие (Activity)
Родители C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
Children TEMPLATE_INSTANTIATION
Свойства — Ключ для специализированного типа
— Ключ для типа первичного шаблона
— Тип шаблона, экземпляр которого был создан
Классы фиксации Деятельность
TemplateInstantiation
Description Возникает в начале и в конце этапа создания экземпляра шаблона. Создается экземпляр основного типа шаблона (например, vector), что приводит к созданию специализированного типа (например, std::vector<int>). Предоставляются ключи для обоих типов. Используйте событие SYMBOL_NAME, чтобы преобразовать ключ в имя типа. Ключи типа уникальны в пределах анализируемой трассировки. Но разные ключи, созданные на разных этапах внешнего интерфейса компилятора, могут указывать на один и тот же тип. Чтобы сравнивать типы, полученные на разных этапах внешнего интерфейса компилятора, нужно использовать символические имена. Это событие является рекурсивным. Рекурсия происходит, когда внешний интерфейс создает экземпляр шаблона с вложением.
THREAD Тип Действие (Activity)
Родители CODE_GENERATION
TOP_DOWN
Children FUNCTION
Свойства нет
Классы фиксации Деятельность
Поток
Description Возникает в начале и в конце этапа выполнения потока внутренней части компилятора. Приостанавливаемый поток считается завершаемым. Пробуждаемый поток считается запускаемым.
TOP_DOWN Тип Действие (Activity)
Родители WHOLE_PROGRAM_ANALYSIS
Children FUNCTION
THREAD
Свойства нет
Классы фиксации Деятельность
TopDown
Description Возникает при запуске и окончании этапа анализа всей программы сверху вниз.
TRANSLATION_UNIT_TYPE Тип Действие (Activity)
Родители FRONT_END_PASS
Children MODULE
HEADER_UNIT
PRECOMPILED_HEADER
Свойства — тип единицы трансляции.
Классы фиксации SimpleEvent
TranslationUnitType
Description Происходит в начале прохода внешнего интерфейса. Тип определяет, обрабатывает ли этот проход модуль, единицу заголовка или предкомпилированный заголовок.
WHOLE_PROGRAM_ANALYSIS Тип Действие (Activity)
Родители C2_DLL
Children BOTTOM_UP
TOP_DOWN
Свойства нет
Классы фиксации Деятельность
WholeProgramAnalysis
Description Возникает при запуске и окончании этапа анализа всей программы при создании кода во время компоновки.