Udostępnij przez


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
Instancjowanie Szablonu
SYMBOL_NAME
MODUŁ
HEADER_UNIT
NAGŁÓWEK_PREKOMPILOWANY

Zdarzenia zaplecza kompilatora

C2_DLL
CAŁOŚCIOWA_ANALIZA_PROGRAMU
TOP_DOWN
OD_DOLU_DO_GÓRY
CODE_GENERATION
NITKA
FUNKCJA
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
Dzieci 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 Aktywność
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 CAŁOŚCIOWA_ANALIZA_PROGRAMU
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci Plik_frontendowy
SYMBOL_NAME
TEMPLATE_INSTANTIATION
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci CODE_GENERATION
CAŁOŚCIOWA_ANALIZA_PROGRAMU
Właściwości Brak
Klasy przechwytywania Aktywność
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.
GENEROWANIE_KODU Typ Działanie
Elementy nadrzędne C2_DLL
Dzieci FUNKCJA
NITKA
Właściwości Brak
Klasy przechwytywania Aktywność
Generowanie kodu
opis Występuje na początku i zatrzymaniu fazy generowania kodu zaplecza.
LINIA_KOMEND Typ Proste zdarzenie
Elementy nadrzędne KOMPILATOR
KONSOLIDATOR
Dzieci 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
Dzieci 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 Aktywność
Wywołania
Kompilator
opis Występuje na początku i zatrzymaniu wywołania cl.exe .
ZMIENNA_ŚRODOWISKOWA Typ Proste zdarzenie
Elementy nadrzędne KOMPILATOR
KONSOLIDATOR
Dzieci 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 .
WYJŚCIE_OBRAZU_WYKONALNEGO Typ Proste zdarzenie
Elementy nadrzędne KONSOLIDATOR
Dzieci 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
Dzieci 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
Dzieci 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 FUNKCJA
Dzieci Brak
Właściwości - Nazwa funkcji wymuszonej.
- Rozmiar funkcji wymuszonej, reprezentowany jako liczba instrukcji pośrednich.
Klasy przechwytywania Aktywność
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
Dzieci FRONT_END_FILE
Instancjowanie szablonu
Właściwości - Ścieżka bezwzględna do pliku.
Klasy przechwytywania Aktywność
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.
PRZEKAZ INTERFEJSU UŻYTKOWNIKA Typ Działanie
Elementy nadrzędne KOMPILATOR
Dzieci C1_DLL
MODUŁ
HEADER_UNIT
NAGŁÓWEK_PREKOMPILOWANY
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 Aktywność
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
Dzieci FORCE_INLINEE
Właściwości - Nazwa funkcji
Klasy przechwytywania Aktywność
Funkcja
opis Występuje podczas uruchamiania i kończenia generowania kodu dla funkcji.
HEADER_UNIT Typ Działanie
Elementy nadrzędne FRONT_END_PASS
Dzieci 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
Dzieci 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
Dzieci 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
Dzieci 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 Aktywność
Wywołania
konsolidatora
opis Występuje na początku i zatrzymaniu wywołania link.exe .
LTCG Typ Działanie
Elementy nadrzędne PASS1
Dzieci C2_DLL
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci 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.
OBIEKT_WYJŚCIOWY Typ Proste zdarzenie
Elementy nadrzędne KOMPILATOR
Dzieci 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
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
OptICF
opis Występuje na początku i zatrzymaniu identycznej optymalizacji konsolidatora COMDAT (/OPT:ICF).
OPT_LBR Typ Działanie
Elementy nadrzędne PASS1
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci LTCG
OPT_ICF
OPT_LBR
OPT_REF
Właściwości Brak
Klasy przechwytywania Aktywność
Pass1
opis Występuje na początku i zatrzymaniu przebiegu konsolidatora 1.
PASS2 Typ Działanie
Elementy nadrzędne KONSOLIDATOR
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
Pass2
opis Występuje na początku i zatrzymaniu przebiegu konsolidatora 2.
NAGŁÓWEK WSTĘPNIE SKOMPILOWANY Typ Działanie
Elementy nadrzędne FRONT_END_PASS
Dzieci 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
Dzieci Brak
Właściwości Brak
Klasy przechwytywania Aktywność
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
Dzieci 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
Dzieci TEMPLATE_INSTANTIATION
Właściwości - Klucz dla wyspecjalizowanego typu
— Klucz typu szablonu podstawowego
- Rodzaj szablonu, który został utworzone wystąpienie
Klasy przechwytywania Aktywność
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
Dzieci FUNKCJA
Właściwości Brak
Klasy przechwytywania Aktywność
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 CAŁOŚCIOWA_ANALIZA_PROGRAMU
Dzieci FUNKCJA
NITKA
Właściwości Brak
Klasy przechwytywania Aktywność
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.
TYP_JEDNOSTKI_TRANSLACJI Typ Działanie
Elementy nadrzędne FRONT_END_PASS
Dzieci MODUŁ
HEADER_UNIT
NAGŁÓWEK_PREKOMPILOWANY
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
Dzieci OD_DOLU_DO_GÓRY
TOP_DOWN
Właściwości Brak
Klasy przechwytywania Aktywność
WholeProgramAnalysis
opis Występuje na początku i zatrzymaniu fazy analizy całego programu generowania kodu w czasie połączenia.