Zestaw SDK szczegółowych informacji o kompilacji języka C++: tabela zdarzeń
Zestaw SDK usługi Build Insights języka C++ jest zgodny z programem Visual Studio 2017 lub nowszym. Aby zapoznać się z dokumentacją dla tych wersji, ustaw kontrolkę selektora wersji programu Visual Studio dla tego artykułu na program Visual Studio 2017 lub nowszy. Znajduje się on w górnej części spisu treści na tej stronie.
Zdarzenia kompilatora
KOMPILATOR
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
BACK_END_PASS
Zdarzenia frontonu kompilatora
C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODUŁ
HEADER_UNIT
PRECOMPILED_HEADER
Zdarzenia zaplecza kompilatora
C2_DLL
WHOLE_PROGRAM_ANALYSIS
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
NITKA
FUNCTION
FORCE_INLINEE
Zdarzenia konsolidatora
KONSOLIDATOR
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 zdarzeń
Zdarzenie | Właściwości | opis |
---|---|---|
BACK_END_PASS | Typ | Działanie |
Elementy nadrzędne | KOMPILATOR | |
Children | C2_DLL | |
Właściwości | - Ścieżka bezwzględna do pliku źródłowego wejściowego - Ścieżka bezwzględna do wyjściowego pliku obiektu |
|
Klasy przechwytywania | Activity KompilatorPass BackEndPass |
|
opis | Występuje na początku i zatrzymaniu przebiegu zaplecza kompilatora. Ten pass jest odpowiedzialny za optymalizację przeanalizowanego kodu źródłowego C/C++ i konwertowanie go na kod maszynowy. | |
BOTTOM_UP | Typ | Działanie |
Elementy nadrzędne | WHOLE_PROGRAM_ANALYSIS | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity Dolna |
|
opis | Występuje na początku i zatrzymaniu całego przebiegu analizy programu. | |
C1_DLL | Typ | Działanie |
Elementy nadrzędne | FRONT_END_PASS | |
Children | FRONT_END_FILE SYMBOL_NAME TEMPLATE_INSTANTIATION |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity C1DLL |
|
opis | Występuje na początku i zatrzymaniu wywołania c1.dll lub c1xx.dll . Te biblioteki DLL to fronton C i C++ kompilatora. Są one wywoływane wyłącznie przez sterownik kompilatora (cl.exe). | |
C2_DLL | Typ | Działanie |
Elementy nadrzędne | BACK_END_PASS LTCG |
|
Children | CODE_GENERATION WHOLE_PROGRAM_ANALYSIS |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity C2DLL |
|
opis | Występuje na początku i zatrzymaniu wywołania c2.dll . Ta biblioteka DLL jest zapleczem kompilatora. Jest wywoływany przez sterownik kompilatora (cl.exe). Jest również wywoływany przez konsolidator (link.exe), gdy jest używane generowanie kodu w czasie połączenia. | |
CODE_GENERATION | Typ | Działanie |
Elementy nadrzędne | C2_DLL | |
Children | FUNCTION NITKA |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity Generowanie kodu |
|
opis | Występuje na początku i zatrzymaniu fazy generowania kodu zaplecza. | |
COMMAND_LINE | Typ | Proste zdarzenie |
Elementy nadrzędne | KOMPILATOR KONSOLIDATOR |
|
Children | Brak | |
Właściwości | - Wiersz polecenia używany do wywoływania cl.exe lub link.exe | |
Klasy przechwytywania | SimpleEvent Wiersz polecenia |
|
opis | Występuje, gdy kompilator i konsolidator są wykonywane ocenianie wiersza polecenia. Oceniany wiersz polecenia zawiera wszystkie parametry cl.exe i link.exe przekazywane za pośrednictwem pliku odpowiedzi. Zawiera również parametry do cl.exe i link.exe przekazywane za pośrednictwem zmiennych środowiskowych, takich jak CL, _CL_, LINK i _LINK_. | |
KOMPILATOR | Typ | Działanie |
Elementy nadrzędne | Brak | |
Children | BACK_END_PASS COMMAND_LINE ENVIRONMENT_VARIABLE FILE_INPUT OBJ_OUTPUT FRONT_END_PASS |
|
Właściwości | - Wersja kompilatora - Katalog roboczy - Ścieżka bezwzględna do wywoływanej cl.exe |
|
Klasy przechwytywania | Activity Wywołania Kompilator |
|
opis | Występuje na początku i zatrzymaniu wywołania cl.exe . | |
ENVIRONMENT_VARIABLE | Typ | Proste zdarzenie |
Elementy nadrzędne | KOMPILATOR KONSOLIDATOR |
|
Children | Brak | |
Właściwości | - Nazwa zmiennej środowiskowej - Wartość zmiennej środowiskowej. |
|
Klasy przechwytywania | SimpleEvent Zmienna środowiskowa |
|
opis | Występuje raz dla każdej istniejącej zmiennej środowiskowej w momencie wywołania cl.exe lub link.exe . | |
EXECUTABLE_IMAGE_OUTPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wyjściowego DLL lub pliku wykonywalnego. | |
Klasy przechwytywania | SimpleEvent FileOutput WykonywalnyImageOutput |
|
opis | Występuje, gdy jednym z danych wejściowych konsolidatora jest biblioteka DLL lub plik obrazu wykonywalnego. | |
EXP_OUTPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wyjściowego exp . | |
Klasy przechwytywania | SimpleEvent FileOutput ExpOutput |
|
opis | Występuje, gdy jeden z danych wyjściowych konsolidatora jest plikiem exp . | |
FILE_INPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KOMPILATOR KONSOLIDATOR |
|
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wejściowego - Typ pliku wejściowego |
|
Klasy przechwytywania | SimpleEvent FileInput |
|
opis | Występuje, aby ogłosić dane wejściowe cl.exe lub link.exe . | |
FORCE_INLINEE | Typ | Proste zdarzenie |
Elementy nadrzędne | FUNCTION | |
Children | Brak | |
Właściwości | - Nazwa funkcji wymuszonej. - Rozmiar funkcji wymuszonej, reprezentowany jako liczba instrukcji pośrednich. |
|
Klasy przechwytywania | Activity ForceInlinee |
|
opis | Występuje, gdy funkcja jest wymuszana w innej funkcji za pomocą słowa kluczowego __forceinline . |
|
FRONT_END_FILE | Typ | Działanie |
Elementy nadrzędne | C1_DLL FRONT_END_FILE |
|
Children | FRONT_END_FILE TEMPLATE_INSTANTIATION |
|
Właściwości | - Ścieżka bezwzględna do pliku. | |
Klasy przechwytywania | Activity Plik FrontEnd |
|
opis | Występuje po uruchomieniu frontonu kompilatora i zatrzymaniu przetwarzania pliku. To zdarzenie jest cykliczne. Rekursja występuje, gdy fronton analizuje dołączone pliki. | |
FRONT_END_PASS | Typ | Działanie |
Elementy nadrzędne | KOMPILATOR | |
Children | C1_DLL MODUŁ HEADER_UNIT PRECOMPILED_HEADER |
|
Właściwości | - Ścieżka bezwzględna do pliku źródłowego wejściowego - Ścieżka bezwzględna do wyjściowego pliku obiektu |
|
Klasy przechwytywania | Activity KompilatorPass FrontEndPass |
|
opis | Występuje na początku i zatrzymaniu przebiegu frontonu kompilatora. Ten dostęp jest odpowiedzialny za analizowanie kodu źródłowego C/C++ i konwertowanie go na język pośredni. | |
FUNKCJA | Typ | Działanie |
Elementy nadrzędne | CODE_GENERATION NITKA TOP_DOWN |
|
Children | FORCE_INLINEE | |
Właściwości | - Nazwa funkcji | |
Klasy przechwytywania | Activity Funkcja |
|
opis | Występuje podczas uruchamiania i kończenia generowania kodu dla funkcji. | |
HEADER_UNIT | Typ | Działanie |
Elementy nadrzędne | FRONT_END_PASS | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | SimpleEvent TranslationUnitType HeaderUnit |
|
opis | Występuje na początku przekazywania frontonu i reprezentuje, że jednostka tłumaczenia jednostki nagłówka jest przetwarzana. | |
IMP_LIB_OUTPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wyjściowego biblioteki importu. | |
Klasy przechwytywania | SimpleEvent FileOutput ImpLibOutput |
|
opis | Występuje, gdy jeden z danych wyjściowych konsolidatora jest biblioteką importu. | |
LIB_OUTPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wyjściowego biblioteki statycznej. | |
Klasy przechwytywania | SimpleEvent FileOutput LibOutput |
|
opis | Występuje, gdy jeden z danych wyjściowych konsolidatora jest biblioteką statyczną. | |
KONSOLIDATOR | Typ | Działanie |
Elementy nadrzędne | Brak | |
Children | COMMAND_LINE ENVIRONMENT_VARIABLE EXECUTABLE_IMAGE_OUTPUT EXP_OUTPUT FILE_INPUT IMP_LIB_OUTPUT LIB_OUTPUT PASS1 PASS2 |
|
Właściwości | - Wersja konsolidatora - Katalog roboczy - Ścieżka bezwzględna do wywoływanej link.exe |
|
Klasy przechwytywania | Activity Wywołania Linker |
|
opis | Występuje na początku i zatrzymaniu wywołania link.exe . | |
LTCG | Typ | Działanie |
Elementy nadrzędne | PASS1 | |
Children | C2_DLL | |
Właściwości | Brak | |
Klasy przechwytywania | Activity LTCG |
|
opis | Występuje na początku i zatrzymaniu generowania kodu w czasie połączenia. | |
MODUŁ | Typ | Działanie |
Elementy nadrzędne | FRONT_END_PASS | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | SimpleEvent TranslationUnitType Moduł |
|
opis | Występuje na początku przekazywania frontonu i reprezentuje przetwarzanie jednostki tłumaczenia modułu. | |
OBJ_OUTPUT | Typ | Proste zdarzenie |
Elementy nadrzędne | KOMPILATOR | |
Children | Brak | |
Właściwości | - Ścieżka bezwzględna do pliku wyjściowego .obj | |
Klasy przechwytywania | SimpleEvent FileOutput ObjOutput |
|
opis | Występuje raz dla każdego .obj danych wyjściowych generowanych przez cl.exe. | |
OPT_ICF | Typ | Działanie |
Elementy nadrzędne | PASS1 | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity OptICF |
|
opis | Występuje na początku i zatrzymaniu identycznej optymalizacji konsolidatora COMDAT (/OPT:ICF). | |
OPT_LBR | Typ | Działanie |
Elementy nadrzędne | PASS1 | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity OptLBR |
|
opis | Występuje na początku i zatrzymaniu długiej gałęzi (/OPT:LBR) optymalizacji konsolidatora. | |
OPT_REF | Typ | Działanie |
Elementy nadrzędne | PASS1 | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity OptRef |
|
opis | Występuje na początku i zatrzymaniu nieużywanych funkcji i eliminacji danych (/OPT:REF) optymalizacji konsolidatora. | |
PASS1 | Typ | Działanie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | LTCG OPT_ICF OPT_LBR OPT_REF |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity Pass1 |
|
opis | Występuje na początku i zatrzymaniu przebiegu konsolidatora 1. | |
PASS2 | Typ | Działanie |
Elementy nadrzędne | KONSOLIDATOR | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity Pass2 |
|
opis | Występuje na początku i zatrzymaniu przebiegu konsolidatora 2. | |
PRECOMPILED_HEADER | Typ | Działanie |
Elementy nadrzędne | FRONT_END_PASS | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | SimpleEvent TranslationUnitType PrekompiledHeader |
|
opis | Występuje na początku przekazywania frontonu i reprezentuje, że jest przetwarzana wstępnie skompilowana jednostka tłumaczenia nagłówka (PCH). | |
PRE_LTCG_OPT_REF | Typ | Działanie |
Elementy nadrzędne | PASS1 | |
Children | Brak | |
Właściwości | Brak | |
Klasy przechwytywania | Activity PreLTCGOptRef |
|
opis | Występuje na początku i zatrzymaniu przebiegu optymalizacji konsolidatora, który eliminuje niereferencyjne funkcje i dane (/OPT:REF). Odbywa się to przed wygenerowaniem kodu w czasie połączenia. | |
SYMBOL_NAME | Typ | Proste zdarzenie |
Elementy nadrzędne | C1_DLL | |
Children | Brak | |
Właściwości | - Klucz typu - Nazwa typu |
|
Klasy przechwytywania | SimpleEvent SymbolName |
|
opis | Występuje na końcu przekazywania frontonu: raz dla każdego typu zaangażowanego w tworzenie wystąpień szablonu. Klucz jest identyfikatorem liczbowym typu, a nazwa jest jego reprezentacją tekstową. Klucze typu są unikatowe w analizowanym śladzie. Jednak różne klucze pochodzące z różnych przebiegów frontonu kompilatora mogą wskazywać ten sam typ. Porównanie typów między różnymi przebiegami frontonu kompilatora wymaga użycia ich nazw. SYMBOL_NAME zdarzenia są emitowane na końcu przebiegu frontonu kompilatora, po wykonaniu wszystkich wystąpień szablonu. | |
TEMPLATE_INSTANTIATION | Typ | Działanie |
Elementy nadrzędne | C1_DLL FRONT_END_FILE TEMPLATE_INSTANTIATION |
|
Children | TEMPLATE_INSTANTIATION | |
Właściwości | - Klucz dla wyspecjalizowanego typu — Klucz typu szablonu podstawowego - Rodzaj szablonu, który został utworzone wystąpienie |
|
Klasy przechwytywania | Activity Klasa TemplateInstantiation |
|
opis | Występuje na początku i na końcu wystąpienia szablonu. Typ szablonu podstawowego (na przykład vector ) jest tworzone wystąpienie, co powoduje utworzenie wyspecjalizowanego typu (takiego jak std::vector<int> ). Klucz jest podawany dla obu typów. Użyj zdarzenia SYMBOL_NAME, aby przekonwertować klucz na nazwę typu. Klucze typu są unikatowe w analizowanym śladzie. Jednak różne klucze pochodzące z różnych przebiegów frontonu kompilatora mogą wskazywać ten sam typ. Porównywanie typów między różnymi przebiegami frontonu kompilatora wymaga użycia nazw symboli. To zdarzenie jest cykliczne. Rekursja występuje w niektórych przypadkach, gdy fronton tworzy wystąpienie zagnieżdżonych szablonów. |
|
NITKA | Typ | Działanie |
Elementy nadrzędne | CODE_GENERATION TOP_DOWN |
|
Children | FUNCTION | |
Właściwości | Brak | |
Klasy przechwytywania | Activity Nitka |
|
opis | Występuje na początku i na końcu wykonywania wątku zaplecza kompilatora. Wstrzymany wątek jest uznawany za zakończony. Rozważany jest wątek, który jest obudzony. | |
TOP_DOWN | Typ | Działanie |
Elementy nadrzędne | WHOLE_PROGRAM_ANALYSIS | |
Children | FUNCTION NITKA |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity Od góry do góry |
|
opis | Występuje na początku i zatrzymaniu przekazywania od góry do góry w dół całej analizy programu. | |
TRANSLATION_UNIT_TYPE | Typ | Działanie |
Elementy nadrzędne | FRONT_END_PASS | |
Children | MODUŁ HEADER_UNIT PRECOMPILED_HEADER |
|
Właściwości | - Typ jednostki tłumaczenia. | |
Klasy przechwytywania | SimpleEvent TranslationUnitType |
|
opis | Występuje na początku przejścia frontonu. Typ określa, czy ten przekazywanie przetwarza moduł, jednostkę nagłówka lub prekompilowany nagłówek. | |
WHOLE_PROGRAM_ANALYSIS | Typ | Działanie |
Elementy nadrzędne | C2_DLL | |
Children | BOTTOM_UP TOP_DOWN |
|
Właściwości | Brak | |
Klasy przechwytywania | Activity WholeProgramAnalysis |
|
opis | Występuje na początku i zatrzymaniu fazy analizy całego programu generowania kodu w czasie połączenia. |