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
FRONT_END_PASS
BACK_END_PASS

Front-endové události kompilátoru

C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODUL
HEADER_UNIT
PRECOMPILED_HEADER

Back-endové události kompilátoru

C2_DLL
WHOLE_PROGRAM_ANALYSIS
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
VLÁKNO
FUNCTION
FORCE_INLINEE

Události linkeru

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

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.
BOTTOM_UP Typ Aktivita
Rodiče WHOLE_PROGRAM_ANALYSIS
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 FRONT_END_PASS
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
WHOLE_PROGRAM_ANALYSIS
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í.
CODE_GENERATION Typ Aktivita
Rodiče C2_DLL
Podřízené prvky FUNCTION
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.
COMMAND_LINE 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
FRONT_END_PASS
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í.
ENVIRONMENT_VARIABLE 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
EnvironmentVariable
Popis Nastane jednou pro každou existující proměnnou prostředí v době , kdy cl.exe nebo link.exe je vyvolána.
EXECUTABLE_IMAGE_OUTPUT 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 FUNCTION
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
PRECOMPILED_HEADER
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
TOP_DOWN
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 FRONT_END_PASS
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í
Linker
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 FRONT_END_PASS
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.
PRECOMPILED_HEADER Typ Aktivita
Rodiče FRONT_END_PASS
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
TOP_DOWN
Podřízené prvky FUNCTION
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é.
TOP_DOWN Typ Aktivita
Rodiče WHOLE_PROGRAM_ANALYSIS
Podřízené prvky FUNCTION
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.
TRANSLATION_UNIT_TYPE Typ Aktivita
Rodiče FRONT_END_PASS
Podřízené prvky MODUL
HEADER_UNIT
PRECOMPILED_HEADER
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 BOTTOM_UP
TOP_DOWN
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í.