Udostępnij za pośrednictwem


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.