SDK do C++ Build Insights: tabela de eventos

O SDK do C++ Build Insights é compatível com o Visual Studio 2017 e posterior. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio deste artigo para o Visual Studio 2017 ou posterior. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

Eventos do compilador

COMPILER
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
BACK_END_PASS

Eventos de front-end do compilador

C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODULE
HEADER_UNIT
PRECOMPILED_HEADER

Eventos de back-end do compilador

C2_DLL
WHOLE_PROGRAM_ANALYSIS
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
THREAD
FUNCTION
FORCE_INLINEE

Eventos do vinculador

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

Tabela de eventos

Evento Propriedade Descrição
BACK_END_PASS Tipo Atividade
Pais COMPILER
Filhos C2_DLL
Propriedades − Caminho absoluto para o arquivo de origem de entrada.
− Caminho absoluto para o arquivo de objeto de saída.
Classes de captura Atividade
CompilerPass
BackEndPass
Descrição Ocorre no início e na parada da passagem de back-end do compilador. Essa passagem é responsável por otimizar o código-fonte C/C++ analisado e convertê-lo em código de máquina.
BOTTOM_UP Tipo Atividade
Pais WHOLE_PROGRAM_ANALYSIS
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
De baixo para cima
Descrição Ocorre no início e na parada da passagem ascendente da análise de todo o programa.
C1_DLL Tipo Atividade
Pais FRONT_END_PASS
Filhos FRONT_END_FILE
SYMBOL_NAME
TEMPLATE_INSTANTIATION
Propriedades Nenhum
Classes de captura Atividade
C1DLL
Descrição Ocorre no início e na parada de uma invocação de c1.dll ou c1xx.dll. Essas DLLs são o front-end C e C++ do compilador. Elas são invocadas apenas pelo driver do compilador (cl.exe).
C2_DLL Tipo Atividade
Pais BACK_END_PASS
LTCG
Filhos CODE_GENERATION
WHOLE_PROGRAM_ANALYSIS
Propriedades Nenhum
Classes de captura Atividade
C2DLL
Descrição Ocorre no início e na parada de uma invocação de c2.dll. Essa DLL é o back-end do compilador. Ela é chamada pelo driver do compilador (cl.exe). Também é invocada pelo vinculador (link.exe) quando a geração de código durante o tempo de vinculação é usada.
CODE_GENERATION Tipo Atividade
Pais C2_DLL
Filhos FUNCTION
THREAD
Propriedades Nenhum
Classes de captura Atividade
Geração de código
Descrição Ocorre no início e na parada da fase de geração de código do back-end.
COMMAND_LINE Tipo Evento Simples
Pais COMPILER
LINKER
Filhos Nenhum
Propriedades − A linha de comando que foi usada para invocar cl.exe ou link.exe.
Classes de captura SimpleEvent
CommandLine
Descrição Ocorre quando o compilador e o vinculador terminam de avaliar a linha de comando. A linha de comando avaliada inclui todos os parâmetros cl.exe e link.exe passados por meio de um arquivo de resposta. Também inclui parâmetros para cl.exe e link.exe passados por meio de variáveis de ambiente como CL, _CL_, LINK e _LINK_.
COMPILER Tipo Atividade
Pais Nenhum
Filhos BACK_END_PASS
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
Propriedades − Versão do compilador.
− Diretório de trabalho.
− Caminho absoluto para o cl.exe invocado.
Classes de captura Atividade
Invocação
Compiler
Descrição Ocorre no início e na parada de uma invocação de cl.exe.
ENVIRONMENT_VARIABLE Tipo Evento Simples
Pais COMPILER
LINKER
Filhos Nenhum
Propriedades − O nome da variável de ambiente.
− O valor da variável de ambiente.
Classes de captura SimpleEvent
Variável de ambiente
Descrição Ocorre uma vez para cada variável de ambiente existente no momento em que cl.exe ou link.exe é invocado.
EXECUTABLE_IMAGE_OUTPUT Tipo Evento Simples
Pais LINKER
Filhos Nenhum
Propriedades − O caminho absoluto para uma DLL ou arquivo de saída executável.
Classes de captura SimpleEvent
FileOutput
ExecutableImageOutput
Descrição Ocorre quando uma das entradas do vinculador é uma DLL ou um arquivo de imagem executável.
EXP_OUTPUT Tipo Evento Simples
Pais LINKER
Filhos Nenhum
Propriedades − O caminho absoluto para um arquivo de saída .exp.
Classes de captura SimpleEvent
FileOutput
Saída Exp
Descrição Ocorre quando uma das saídas do vinculador é um arquivo .exp.
FILE_INPUT Tipo Evento Simples
Pais COMPILER
LINKER
Filhos Nenhum
Propriedades − O caminho absoluto para o arquivo de entrada.
− O tipo do arquivo de entrada.
Classes de captura SimpleEvent
FileInput
Descrição Ocorre para anunciar uma entrada de cl.exe ou link.exe.
FORCE_INLINEE Tipo Evento Simples
Pais FUNCTION
Filhos Nenhum
Propriedades − O nome da função embutida forçada.
− O tamanho da função embutida forçada, representada como uma contagem de instruções intermediária.
Classes de captura Atividade
ForceInlinee
Descrição Ocorre quando uma função está sendo forçada em outra função por meio do uso da palavra-chave __forceinline.
FRONT_END_FILE Tipo Atividade
Pais C1_DLL
FRONT_END_FILE
Filhos FRONT_END_FILE
TEMPLATE_INSTANTIATION
Propriedades − Caminho absoluto para o arquivo.
Classes de captura Atividade
FrontEndFile
Descrição Ocorre quando o front-end do compilador inicia e para de processar um arquivo. Esse evento é recursivo. A recursão acontece quando o front-end está analisando os arquivos incluídos.
FRONT_END_PASS Tipo Atividade
Pais COMPILER
Filhos C1_DLL
MODULE
HEADER_UNIT
PRECOMPILED_HEADER
Propriedades − Caminho absoluto para o arquivo de origem de entrada.
− Caminho absoluto para o arquivo de objeto de saída.
Classes de captura Atividade
CompilerPass
FrontEndPass
Descrição Ocorre no início e na parada da passagem de front-end do compilador. Essa passagem é responsável por analisar o código-fonte C/C++ e convertê-lo em linguagem intermediária.
FUNCTION Tipo Atividade
Pais CODE_GENERATION
THREAD
TOP_DOWN
Filhos FORCE_INLINEE
Propriedades − Nome da função
Classes de captura Atividade
Função
Descrição Ocorre ao iniciar e encerrar a geração do código para uma função.
HEADER_UNIT Tipo Atividade
Pais FRONT_END_PASS
Filhos Nenhum
Propriedades Nenhum
Classes de captura SimpleEvent
TranslationUnitType
HeaderUnit
Descrição Ocorre no início da passagem de front-end e representa que uma unidade de tradução da unidade de cabeçalho está sendo processada.
IMP_LIB_OUTPUT Tipo Evento Simples
Pais LINKER
Filhos Nenhum
Propriedades − O caminho absoluto para um arquivo de saída da biblioteca de importação.
Classes de captura SimpleEvent
FileOutput
ImpLibOutput
Descrição Ocorre quando uma das saídas do vinculador é uma biblioteca de importação.
LIB_OUTPUT Tipo Evento Simples
Pais LINKER
Filhos Nenhum
Propriedades − O caminho absoluto para um arquivo de saída de biblioteca estática.
Classes de captura SimpleEvent
FileOutput
LibOutput
Descrição Ocorre quando uma das saídas do vinculador é uma biblioteca estática.
LINKER Tipo Atividade
Pais Nenhum
Filhos COMMAND_LINE
ENVIRONMENT_VARIABLE
EXECUTABLE_IMAGE_OUTPUT
EXP_OUTPUT
FILE_INPUT
IMP_LIB_OUTPUT
LIB_OUTPUT
PASS1
PASS2
Propriedades – Versão do vinculador.
− Diretório de trabalho.
− Caminho absoluto para o link.exe invocado.
Classes de captura Atividade
Invocação
Linker
Descrição Ocorre no início e na parada de uma invocação de link.exe.
LTCG Tipo Atividade
Pais PASS1
Filhos C2_DLL
Propriedades Nenhum
Classes de captura Atividade
LTCG
Descrição Ocorre no início e na parada da geração de código durante o tempo de vinculação.
MODULE Tipo Atividade
Pais FRONT_END_PASS
Filhos Nenhum
Propriedades Nenhum
Classes de captura SimpleEvent
TranslationUnitType
Módulo
Descrição Ocorre no início da passagem de front-end e representa que uma unidade de tradução de módulo está sendo processada.
OBJ_OUTPUT Tipo Evento Simples
Pais COMPILER
Filhos Nenhum
Propriedades − O caminho absoluto para o arquivo de saída .obj.
Classes de captura SimpleEvent
FileOutput
ObjOutput
Descrição Ocorre uma vez para cada saída .obj produzida por cl.exe.
OPT_ICF Tipo Atividade
Pais PASS1
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
OptICF
Descrição Ocorre no início e na parada da otimização do vinculador de dobra COMDAT idêntica (/OPT:ICF).
OPT_LBR Tipo Atividade
Pais PASS1
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
OptLBR
Descrição Ocorre no início e na parada da otimização do vinculador de ramificação longa (/OPT:LBR).
OPT_REF Tipo Atividade
Pais PASS1
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
OptRef
Descrição Ocorre no início e na parada das funções não referenciadas e da otimização do vinculador de eliminação de dados (/OPT:REF).
PASS1 Tipo Atividade
Pais LINKER
Filhos LTCG
OPT_ICF
OPT_LBR
OPT_REF
Propriedades Nenhum
Classes de captura Atividade
Pass1
Descrição Ocorre no início e na parada da passagem 1 do vinculador.
PASS2 Tipo Atividade
Pais LINKER
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
Pass2
Descrição Ocorre no início e na parada da passagem 2 do vinculador.
PRECOMPILED_HEADER Tipo Atividade
Pais FRONT_END_PASS
Filhos Nenhum
Propriedades Nenhum
Classes de captura SimpleEvent
TranslationUnitType
PrecompiledHeader
Descrição Ocorre no início da passagem de front-end e representa que uma unidade de tradução de cabeçalho pré-compilado (PCH) está sendo processada.
PRE_LTCG_OPT_REF Tipo Atividade
Pais PASS1
Filhos Nenhum
Propriedades Nenhum
Classes de captura Atividade
PreLTCGOptRef
Descrição Ocorre no início e na parada da passagem de otimização do vinculador que elimina funções e dados não referenciados (/OPT:REF). Isso é feito antes da geração de código durante o tempo de vinculação.
SYMBOL_NAME Tipo Evento Simples
Pais C1_DLL
Filhos Nenhum
Propriedades − Uma chave de tipo.
− O nome do tipo.
Classes de captura SimpleEvent
Nome do Símbolo
Descrição Ocorre no final da passagem de front-end: uma vez para cada tipo envolvido em instanciações de modelo. A chave é um identificador numérico para o tipo, enquanto o nome é a representação de texto. As chaves de tipo são exclusivas no rastreamento sendo analisado. No entanto, diferentes chaves provenientes de diferentes passagens de front-end do compilador podem apontar para o mesmo tipo. Comparar tipos entre diferentes passagens de front-end do compilador requer o uso dos nomes. Os eventos SYMBOL_NAME são emitidos no final de uma passagem de front-end do compilador, após a ocorrência de todas as instanciações de modelo.
TEMPLATE_INSTANTIATION Tipo Atividade
Pais C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
Filhos TEMPLATE_INSTANTIATION
Propriedades − A chave para o tipo especializado.
− A chave para o tipo do modelo principal.
− O tipo de modelo que foi instanciado.
Classes de captura Atividade
TemplateInstantiation
Descrição Ocorre no início e no final de uma instanciação de modelo. Um tipo de modelo primário (como vector) é instanciado, resultando em um tipo especializado (como std::vector<int>). Uma chave é fornecida para ambos os tipos. Use o evento SYMBOL_NAME para converter uma chave no nome do tipo. As chaves de tipo são exclusivas no rastreamento sendo analisado. No entanto, diferentes chaves provenientes de diferentes passagens de front-end do compilador podem apontar para o mesmo tipo. Comparar tipos entre diferentes passagens de front-end do compilador requer o uso de nomes de símbolos. Esse evento é recursivo. A recursão ocorre em alguns casos quando o front-end está instanciando modelos aninhados.
THREAD Tipo Atividade
Pais CODE_GENERATION
TOP_DOWN
Filhos FUNCTION
Propriedades Nenhum
Classes de captura Atividade
Thread
Descrição Ocorre no início e no final de uma execução de thread de back-end do compilador. Um thread sendo suspenso é considerado encerrado. Um thread sendo ativado é considerado iniciado.
TOP_DOWN Tipo Atividade
Pais WHOLE_PROGRAM_ANALYSIS
Filhos FUNCTION
THREAD
Propriedades Nenhum
Classes de captura Atividade
De cima para baixo
Descrição Ocorre no início e na parada da passagem decrescente da análise de todo o programa.
TRANSLATION_UNIT_TYPE Tipo Atividade
Pais FRONT_END_PASS
Filhos MODULE
HEADER_UNIT
PRECOMPILED_HEADER
Propriedades − O tipo de unidade de tradução.
Classes de captura SimpleEvent
TranslationUnitType
Descrição Ocorre no início da passagem de front-end. O tipo identifica se essa passagem está processando um módulo, uma unidade de cabeçalho ou um cabeçalho pré-compilado.
WHOLE_PROGRAM_ANALYSIS Tipo Atividade
Pais C2_DLL
Filhos BOTTOM_UP
TOP_DOWN
Propriedades Nenhum
Classes de captura Atividade
Análise do Programa Integral
Descrição Ocorre no início e na parada da fase de análise de todo o programa da geração de código durante o tempo de vinculação.