Sdílet prostřednictvím


C++ Build Insights SDK: tabulka událostí

Sada C++ Build Insights SDK je kompatibilní se sadou Visual Studio 2017 a novějšími verzemi. Pokud chcete zobrazit dokumentaci k těmto verzím, nastavte ovládací prvek selektoru verzí sady Visual Studio pro tento článek na Visual Studio 2017 nebo novější. Nachází se v horní části obsahu na této stránce.

Události kompilátoru

PŘEKLADAČ
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
PŘEDNÍ_KONEC_PRŮCHOD
BACK_END_PASS

Front-endové události kompilátoru

C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODUL
HEADER_UNIT
předkompilovaná hlavička

Back-endové události kompilátoru

C2_DLL
Analýza celého programu
shora dolů
BOTTOM_UP
CODE_GENERATION
VLÁKNO
FUNKCE
FORCE_INLINEE

Události linkeru

LINKER
PŘÍKAZOVÝ ŘÁDEK
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

Tabulka událostí

Událost Vlastnost Popis
BACK_END_PASS Typ Aktivita
Rodiče PŘEKLADAČ
Podřízené prvky C2_DLL
Vlastnosti – Absolutní cesta ke vstupnímu zdrojovému souboru
– Absolutní cesta k výstupnímu souboru objektu
Třídy zachytávání Aktivita
CompilerPass
BackEndPass
Popis Vyvolá se na začátku a zastavení back-endového průchodu kompilátoru. Tento průchod zodpovídá za optimalizaci analyzovaného zdrojového kódu C/C++ a jeho převodu na strojový kód.
odspodu nahoru Typ Aktivita
Rodiče Analýza celého programu
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
Dole
Popis Probíhá na začátku a zastavuje průchod analýzy celého programu směrem dolů.
C1_DLL Typ Aktivita
Rodiče PŘEDNÍ_KONEC_PRŮCHOD
Podřízené prvky FRONT_END_FILE
SYMBOL_NAME
TEMPLATE_INSTANTIATION
Vlastnosti Nic
Třídy zachytávání Aktivita
C1DLL
Popis Vyvolá se při spuštění a zastavení c1.dll nebo c1xx.dll vyvolání. Tyto knihovny DLL jsou front-end jazyka C a C++ kompilátoru. Vyvolá se výhradně ovladačem kompilátoru (cl.exe).
C2_DLL Typ Aktivita
Rodiče BACK_END_PASS
LTCG
Podřízené prvky CODE_GENERATION
Analýza celého programu
Vlastnosti Nic
Třídy zachytávání Aktivita
C2DLL
Popis Vyvolá se při spuštění a zastavení c2.dll vyvolání. Tato knihovna DLL je back-end kompilátoru. Volá ho ovladač kompilátoru (cl.exe). Vyvolá se také linkerem (link.exe), když se použije generování kódu v době propojení.
GENERATOR_KÓDU Typ Aktivita
Rodiče C2_DLL
Podřízené prvky FUNKCE
VLÁKNO
Vlastnosti Nic
Třídy zachytávání Aktivita
Generování kódu
Popis Nastane na začátku a zastavení fáze generování kódu back-endu.
PŘÍKAZOVÝ_ŘÁDEK Typ Jednoduchá událost
Rodiče PŘEKLADAČ
LINKER
Podřízené prvky Nic
Vlastnosti – Příkazový řádek, který se použil k vyvolání cl.exe nebo link.exe
Třídy zachytávání SimpleEvent
Příkazový řádek
Popis Nastane, když kompilátor a linker dokončí vyhodnocení příkazového řádku. Vyhodnocený příkazový řádek obsahuje všechny parametry cl.exe a link.exe předávané prostřednictvím souboru odpovědi. Obsahuje také parametry pro cl.exe a link.exe předávané prostřednictvím proměnných prostředí, jako jsou CL, _CL_, LINK a _LINK_.
PŘEKLADAČ Typ Aktivita
Rodiče Nic
Podřízené prvky BACK_END_PASS
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
PŘEDNÍ_KONEC_PRŮCHOD
Vlastnosti – Verze kompilátoru
- Pracovní adresář
– Absolutní cesta k vyvolané cl.exe
Třídy zachytávání Aktivita
Vyvolání
Překladač
Popis Vyvolá se při spuštění a zastavení cl.exe vyvolání.
PROMĚNNÁ_PROSTŘEDÍ Typ Jednoduchá událost
Rodiče PŘEKLADAČ
Linker
Podřízené prvky Nic
Vlastnosti – Název proměnné prostředí
– Hodnota proměnné prostředí.
Třídy zachytávání SimpleEvent
Proměnná prostředí
Popis Nastane jednou pro každou existující proměnnou prostředí v době , kdy cl.exe nebo link.exe je vyvolána.
VÝSTUP_SPUŠŤITELNÉHO_OBRAZU Typ Jednoduchá událost
Rodiče LINKER
Podřízené prvky Nic
Vlastnosti – Absolutní cesta k výstupnímu souboru knihovny DLL nebo spustitelnému souboru.
Třídy zachytávání SimpleEvent
FileOutput
Spustitelný souborImageOutput
Popis Nastane, když jeden ze vstupů linkeru je dll nebo spustitelný soubor obrázku.
EXP_OUTPUT Typ Jednoduchá událost
Rodiče LINKER
Podřízené prvky Nic
Vlastnosti – Absolutní cesta k výstupnímu souboru .exp .
Třídy zachytávání SimpleEvent
FileOutput
ExpOutput
Popis Nastane, když jeden z výstupů linkeru je soubor .exp .
FILE_INPUT Typ Jednoduchá událost
Rodiče PŘEKLADAČ
LINKER
Podřízené prvky Nic
Vlastnosti – Absolutní cesta ke vstupnímu souboru
- Typ vstupního souboru
Třídy zachytávání SimpleEvent
FileInput
Popis Vyvolá se k oznámení cl.exe nebo link.exe vstupu.
FORCE_INLINEE Typ Jednoduchá událost
Rodiče FUNKCE
Podřízené prvky Nic
Vlastnosti - Název vynucené vložené funkce.
- Velikost vynucené vložené funkce, reprezentovaná jako průběžný počet instrukcí.
Třídy zachytávání Aktivita
ForceInlinee
Popis Nastane, když je funkce vynuceně vložena do jiné funkce prostřednictvím použití klíčového __forceinline slova.
FRONT_END_FILE Typ Aktivita
Rodiče C1_DLL
FRONT_END_FILE
Podřízené prvky FRONT_END_FILE
TEMPLATE_INSTANTIATION
Vlastnosti – Absolutní cesta k souboru.
Třídy zachytávání Aktivita
FrontEndFile
Popis Nastane při spuštění front-endu kompilátoru a zastavení zpracování souboru. Tato událost je rekurzivní. K rekurzi dochází, když front-end analyzuje zahrnuté soubory.
FRONT_END_PASS Typ Aktivita
Rodiče PŘEKLADAČ
Podřízené prvky C1_DLL
MODUL
HEADER_UNIT
předkompilovaná hlavička
Vlastnosti – Absolutní cesta ke vstupnímu zdrojovému souboru
– Absolutní cesta k výstupnímu souboru objektu
Třídy zachytávání Aktivita
CompilerPass
FrontEndPass
Popis Vyvolá se na začátku a zastavení front-endu kompilátoru. Tento průchod zodpovídá za parsování zdrojového kódu C/C++ a převodu do zprostředkujícího jazyka.
FUNKCE Typ Aktivita
Rodiče CODE_GENERATION
VLÁKNO
shora dolů
Podřízené prvky FORCE_INLINEE
Vlastnosti - Název funkce
Třídy zachytávání Aktivita
Funkce
Popis Nastane při spuštění a ukončení generování kódu pro funkci.
HEADER_UNIT Typ Aktivita
Rodiče PŘEDNÍ_KONEC_PRŮCHOD
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání SimpleEvent
TranslationUnitType
HeaderUnit
Popis Nastane na začátku front-endového průchodu a představuje, že se zpracovává jednotka překladu hlaviček.
IMP_LIB_OUTPUT Typ Jednoduchá událost
Rodiče LINKER
Podřízené prvky Nic
Vlastnosti – Absolutní cesta k výstupnímu souboru knihovny importu.
Třídy zachytávání SimpleEvent
FileOutput
ImpLibOutput
Popis Nastane, když jeden z výstupů linkeru je knihovna importu.
LIB_OUTPUT Typ Jednoduchá událost
Rodiče LINKER
Podřízené prvky Nic
Vlastnosti – Absolutní cesta k výstupnímu souboru statické knihovny.
Třídy zachytávání SimpleEvent
FileOutput
LibOutput
Popis Nastane, když jeden z výstupů linkeru je statická knihovna.
LINKER Typ Aktivita
Rodiče Nic
Podřízené prvky COMMAND_LINE
ENVIRONMENT_VARIABLE
EXECUTABLE_IMAGE_OUTPUT
EXP_OUTPUT
FILE_INPUT
IMP_LIB_OUTPUT
LIB_OUTPUT
PASS1
PASS2
Vlastnosti - Verze linkeru
- Pracovní adresář
– Absolutní cesta k vyvolané link.exe
Třídy zachytávání Aktivita
Vyvolání
linkeru
Popis Vyvolá se při spuštění a zastavení link.exe vyvolání.
LTCG Typ Aktivita
Rodiče PASS1
Podřízené prvky C2_DLL
Vlastnosti Nic
Třídy zachytávání Aktivita
LTCG
Popis Vyvolá se při spuštění a zastavení generování kódu v době propojení.
MODUL Typ Aktivita
Rodiče PŘEDNÍ_KONEC_PRŮCHOD
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání SimpleEvent
TranslationUnitType
Modul
Popis Nastane na začátku front-endového průchodu a představuje, že se zpracovává jednotka překladu modulu.
OBJ_OUTPUT Typ Jednoduchá událost
Rodiče PŘEKLADAČ
Podřízené prvky Nic
Vlastnosti – Absolutní cesta k výstupnímu souboru .obj
Třídy zachytávání SimpleEvent
FileOutput
ObjOutput
Popis Nastane jednou pro každý .obj výstup vytvořený cl.exe.
OPT_ICF Typ Aktivita
Rodiče PASS1
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
OptICF
Popis Vyvolá se při spuštění a zastavení identické optimalizace linkeru COMDAT (/OPT:ICF).
OPT_LBR Typ Aktivita
Rodiče PASS1
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
OptLBR
Popis Vyvolá se při spuštění a zastavení optimalizace linkeru long branch (/OPT:LBR).
OPT_REF Typ Aktivita
Rodiče PASS1
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
OptRef
Popis Vyvolá se při spuštění a zastavení neodkazovaných funkcí a optimalizace linkeru (/OPT:REF).
PASS1 Typ Aktivita
Rodiče LINKER
Podřízené prvky LTCG
OPT_ICF
OPT_LBR
OPT_REF
Vlastnosti Nic
Třídy zachytávání Aktivita
Pass1
Popis Nastane na začátku a zastavení linkeru pass 1.
PASS2 Typ Aktivita
Rodiče Linker
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
Pass2
Popis Nastane na začátku a zastavení linkeru pass 2.
PŘEDKOMPILOVANÁ_HLAVIČKA Typ Aktivita
Rodiče PŘEDNÍ_KONEC_PRŮCHOD
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání SimpleEvent
TranslationUnitType
PrekompiledHeader
Popis Nastane na začátku front-endového průchodu a představuje, že se zpracovává předkompilovaná jednotka překladu (PCH).
PRE_LTCG_OPT_REF Typ Aktivita
Rodiče PASS1
Podřízené prvky Nic
Vlastnosti Nic
Třídy zachytávání Aktivita
PreLTCGOptRef
Popis Vyvolá se při spuštění a zastavení průchodu optimalizace linkeru, který eliminuje neodkazované funkce a data (/OPT:REF). Je to hotové před generováním kódu v době propojení.
SYMBOL_NAME Typ Jednoduchá událost
Rodiče C1_DLL
Podřízené prvky Nic
Vlastnosti – Klíč typu
– Název typu
Třídy zachytávání SimpleEvent
SymbolName
Popis Vyskytuje se na konci front-endového průchodu: jednou pro každý typ, který je součástí vytváření instancí šablony. Klíč je číselný identifikátor pro typ, zatímco název je jeho textová reprezentace. Klíče typu jsou jedinečné v rámci analyzovaného trasování. Různé klíče pocházející z různých front-endových průchodů kompilátoru ale můžou odkazovat na stejný typ. Porovnání typů mezi různými front-endy kompilátoru vyžaduje použití jejich názvů. SYMBOL_NAME události se generují na konci front-endového průchodu kompilátoru, po provedení všech instancí šablony.
TEMPLATE_INSTANTIATION Typ Aktivita
Rodiče C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
Podřízené prvky TEMPLATE_INSTANTIATION
Vlastnosti - Klíč pro specializovaný typ
– Klíč pro typ primární šablony
- Druh šablony, která byla vytvořena
Třídy zachytávání Aktivita
TemplateInstantiation
Popis Nastane na začátku a na konci instance šablony. Vytvoří se instance primárního typu šablony (například vector) a výsledkem je specializovaný typ (například std::vector<int>). Klíč je zadaný pro oba typy. Pomocí události SYMBOL_NAME převeďte klíč na název typu. Klíče typu jsou jedinečné v rámci analyzovaného trasování. Různé klíče pocházející z různých front-endových průchodů kompilátoru ale můžou odkazovat na stejný typ. Porovnání typů mezi různými front-endy kompilátoru vyžaduje použití názvů symbolů. Tato událost je rekurzivní. K rekurzi dochází v některých případech, když front-end vytvoří instanci vnořených šablon.
VLÁKNO Typ Aktivita
Rodiče CODE_GENERATION
shora dolů
Podřízené prvky FUNKCE
Vlastnosti Nic
Třídy zachytávání Aktivita
Vlákno
Popis Nastane na začátku a na konci spuštění back-endového vlákna kompilátoru. Pozastavené vlákno se považuje za ukončené. Vlákno, které se probudí, se považuje za spuštěné.
shora dolů Typ Aktivita
Rodiče Analýza celého programu
Podřízené prvky FUNKCE
VLÁKNO
Vlastnosti Nic
Třídy zachytávání Aktivita
TopDown
Popis Vyskytuje se na začátku a zastavuje horní konec analýzy celého programu.
TYP_UNIT_PŘEKLADU Typ Aktivita
Rodiče PŘEDNÍ_KONEC_PRŮCHOD
Podřízené prvky MODUL
HEADER_UNIT
předkompilovaná hlavička
Vlastnosti - Typ jednotky překladu.
Třídy zachytávání SimpleEvent
TranslationUnitType
Popis Nastane na začátku front-endového průchodu. Typ určuje, jestli tento průchod zpracovává modul, jednotku záhlaví nebo předkompilovanou hlavičku.
WHOLE_PROGRAM_ANALYSIS Typ Aktivita
Rodiče C2_DLL
Podřízené prvky ZDOLA_NAHORU
shora dolů
Vlastnosti Nic
Třídy zachytávání Aktivita
WholeProgramAnalysis
Popis Vyskytuje se na začátku a zastavení fáze analýzy celého programu generování kódu v čase propojení.