Пакет 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 | Возникает при запуске и окончании этапа анализа всей программы при создании кода во время компоновки. |