C++ Build Insights SDK는 Visual Studio 2017 이상과 호환됩니다. 이러한 버전에 대한 설명서를 보려면 이 문서에 대한 Visual Studio 버전 선택기 컨트롤을 Visual Studio 2017 이상으로 설정하세요. 이 페이지의 목차 맨 위에 있습니다.
컴파일러 이벤트
컴파일러
명령어 줄
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
프론트엔드 패스
백엔드 패스
컴파일러 프런트 엔드 이벤트
C1_DLL
프론트엔드_파일
템플릿 인스턴스화
SYMBOL_NAME
모듈
HEADER_UNIT
사전 컴파일된 헤더
컴파일러 백 엔드 이벤트
C2_DLL
전체_프로그램_분석
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
스레드
기능
FORCE_INLINEE
링커 이벤트
링커
명령어 줄
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
이벤트 테이블
이벤트 | 속성 | 설명 |
---|---|---|
백엔드 패스 | 유형 | 활동 |
부모 | 컴파일러 | |
자녀 | C2_DLL | |
속성 | - 입력 소스 파일의 절대 경로 - 출력 개체 파일의 절대 경로 |
|
캡처 클래스 |
활동 CompilerPass BackEndPass |
|
설명 | 컴파일러 백 엔드 패스를 시작 및 중지할 때 발생합니다. 이 패스는 구문 분석된 C/C++ 소스 코드를 최적화하고 기계어 코드로 변환하는 역할을 담당합니다. | |
BOTTOM_UP | 유형 | 활동 |
부모 | 전체_프로그램_분석 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 BottomUp |
|
설명 | 전체 프로그램 분석의 상향식 패스를 시작 및 중지할 때 발생합니다. | |
C1_DLL | 유형 | 활동 |
부모 | 프론트엔드_패스 | |
자녀 |
프론트엔드_파일 SYMBOL_NAME 템플릿 인스턴스화 |
|
속성 | 없음 | |
캡처 클래스 |
활동 C1DLL |
|
설명 | c1.dll 또는 c1xx.dll 호출을 시작 및 중지할 때 발생합니다. 이러한 DLL은 컴파일러의 C 및 C++ 프런트 엔드입니다. 컴파일러 드라이버(cl.exe)를 통해서만 호출됩니다. | |
C2_DLL | 유형 | 활동 |
부모 |
백엔드 패스 LTCG |
|
자녀 |
CODE_GENERATION 전체_프로그램_분석 |
|
속성 | 없음 | |
캡처 클래스 |
활동 C2DLL |
|
설명 | c2.dll을 시작 및 중지할 때 발생합니다. 이 DLL은 컴파일러의 백 엔드입니다. 컴파일러 드라이버(cl.exe)를 통해 호출됩니다. 링크 타임 코드 생성을 사용하는 경우 링커(link.exe)를 통해서도 호출됩니다. | |
코드 생성 | 유형 | 활동 |
부모 | C2_DLL | |
자녀 |
기능 스레드 |
|
속성 | 없음 | |
캡처 클래스 |
활동 CodeGeneration |
|
설명 | 백 엔드의 코드 생성 단계를 시작 및 중지할 때 발생합니다. | |
명령줄 | 유형 | 단순 이벤트 |
부모 |
컴파일러 링커 |
|
자녀 | 없음 | |
속성 | - cl.exe 또는 link.exe를 호출하는 데 사용된 명령줄 | |
캡처 클래스 |
SimpleEvent CommandLine |
|
설명 | 컴파일러 및 링커가 명령줄 평가를 완료하면 발생합니다. 평가된 명령줄에는 지시 파일을 통해 전달된 모든 cl.exe 및 link.exe 매개 변수가 포함됩니다. 또한 CL, _CL_, LINK 및 _LINK_와 같은 환경 변수를 통해 전달되는 cl.exe 및 link.exe 매개 변수를 포함합니다. | |
컴파일러 | 유형 | 활동 |
부모 | 없음 | |
자녀 |
백엔드 패스 명령어 줄 ENVIRONMENT_VARIABLE FILE_INPUT OBJ_OUTPUT 프론트엔드_패스 |
|
속성 | - 컴파일러 버전 - 작업 디렉터리 - 호출된 cl.exe의 절대 경로 |
|
캡처 클래스 |
활동 호출 컴파일러 |
|
설명 | cl.exe 호출을 시작 및 중지할 때 발생합니다. | |
ENVIRONMENT_VARIABLE | 유형 | 단순 이벤트 |
부모 |
컴파일러 링커 |
|
자녀 | 없음 | |
속성 | - 환경 변수의 이름 - 환경 변수의 값 |
|
캡처 클래스 |
SimpleEvent 환경 변수 |
|
설명 | cl.exe 또는 link.exe가 호출될 때 모든 기존 환경 변수에 대해 한 번 발생합니다. | |
실행 가능 이미지 출력 | 유형 | 단순 이벤트 |
부모 | 링커 | |
자녀 | 없음 | |
속성 | - DLL 또는 실행 파일 출력 파일의 절대 경로 | |
캡처 클래스 |
SimpleEvent FileOutput ExecutableImageOutput |
|
설명 | 링커 입력 중 하나가 DLL 또는 실행 가능한 이미지 파일인 경우 발생합니다. | |
EXP_OUTPUT | 유형 | 단순 이벤트 |
부모 | 링커 | |
자녀 | 없음 | |
속성 | - .exp 출력 파일의 절대 경로 | |
캡처 클래스 |
SimpleEvent FileOutput ExpOutput |
|
설명 | 링커 출력 중 하나가 .exp 파일인 경우 발생합니다. | |
파일 입력 | 유형 | 단순 이벤트 |
부모 |
컴파일러 링커 |
|
자녀 | 없음 | |
속성 | - 입력 파일의 절대 경로 - 입력 파일의 유형 |
|
캡처 클래스 |
SimpleEvent FileInput |
|
설명 | cl.exe 또는 link.exe 입력을 발표하기 위해 발생합니다. | |
FORCE_INLINEE | 유형 | 단순 이벤트 |
부모 | 기능 | |
자녀 | 없음 | |
속성 | - 강제 인라인 함수의 이름 - 중간 명령 수로 표시되는 강제 인라인 함수의 크기 |
|
캡처 클래스 |
활동 ForceInlinee |
|
설명 |
__forceinline 키워드를 통해 함수가 다른 함수에 강제로 인라인될 때 발생합니다. |
|
프론트엔드_파일 | 유형 | 활동 |
부모 |
C1_DLL 프론트엔드_파일 |
|
자녀 |
프론트엔드_파일 템플릿 인스턴스화 |
|
속성 | - 파일의 절대 경로 | |
캡처 클래스 |
활동 FrontEndFile |
|
설명 | 컴파일러 프런트 엔드가 파일 처리를 시작 및 중지할 때 발생합니다. 이 이벤트는 재귀적입니다. 재귀는 프런트 엔드가 포함된 파일을 구문 분석할 때 발생합니다. | |
프론트 엔드 패스 | 유형 | 활동 |
부모 | 컴파일러 | |
자녀 |
C1_DLL 모듈 HEADER_UNIT 사전 컴파일된 헤더 |
|
속성 | - 입력 소스 파일의 절대 경로 - 출력 개체 파일의 절대 경로 |
|
캡처 클래스 |
활동 CompilerPass FrontEndPass |
|
설명 | 컴파일러 프런트 엔드 패스를 시작 및 중지할 때 발생합니다. 이 패스는 C/C++ 소스 코드를 구문 분석하고 중간 언어로 변환하는 역할을 담당합니다. | |
기능 | 유형 | 활동 |
부모 |
CODE_GENERATION 스레드 TOP_DOWN |
|
자녀 | FORCE_INLINEE | |
속성 | - 함수의 이름 | |
캡처 클래스 |
활동 기능 |
|
설명 | 함수에 대한 코드 생성을 시작하고 종료할 때 발생합니다. | |
헤더_유닛 | 유형 | 활동 |
부모 | 프론트엔드_패스 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
SimpleEvent TranslationUnitType HeaderUnit |
|
설명 | 프런트 엔드 전달이 시작될 때 발생하며 헤더 단위 변환 단위가 처리 중임을 나타냅니다. | |
IMP_LIB_OUTPUT | 유형 | 단순 이벤트 |
부모 | 링커 | |
자녀 | 없음 | |
속성 | - 가져오기 라이브러리 출력 파일의 절대 경로 | |
캡처 클래스 |
SimpleEvent FileOutput ImpLibOutput |
|
설명 | 링커 출력 중 하나가 가져오기 라이브러리인 경우 발생합니다. | |
LIB_OUTPUT | 유형 | 단순 이벤트 |
부모 | 링커 | |
자녀 | 없음 | |
속성 | - 정적 라이브러리 출력 파일의 절대 경로 | |
캡처 클래스 |
SimpleEvent FileOutput LibOutput |
|
설명 | 링커 출력 중 하나가 정적 라이브러리인 경우 발생합니다. | |
링커 | 유형 | 활동 |
부모 | 없음 | |
자녀 |
명령어 줄 ENVIRONMENT_VARIABLE 실행 가능 이미지 출력 EXP_OUTPUT FILE_INPUT IMP_LIB_OUTPUT LIB_OUTPUT PASS1 PASS2 |
|
속성 | - 링커 버전 - 작업 디렉터리 - 호출된 link.exe의 절대 경로 |
|
캡처 클래스 |
활동 호출 링커 |
|
설명 | link.exe 호출을 시작 및 중지할 때 발생합니다. | |
LTCG | 유형 | 활동 |
부모 | PASS1 | |
자녀 | C2_DLL | |
속성 | 없음 | |
캡처 클래스 |
활동 LTCG |
|
설명 | 링크 타임 코드 생성을 시작 및 중지할 때 발생합니다. | |
모듈 | 유형 | 활동 |
부모 | 프론트엔드_패스 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
SimpleEvent TranslationUnitType 모듈 |
|
설명 | 프런트 엔드 전달이 시작될 때 발생하며 모듈 변환 단위가 처리 중임을 나타냅니다. | |
OBJ_OUTPUT | 유형 | 단순 이벤트 |
부모 | 컴파일러 | |
자녀 | 없음 | |
속성 | - .obj 출력 파일의 절대 경로 | |
캡처 클래스 |
SimpleEvent FileOutput ObjOutput |
|
설명 | cl.exe에 의해 생성된 모든 .obj 출력에 대해 한 번 발생합니다. | |
OPT_ICF | 유형 | 활동 |
부모 | PASS1 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 OptICF |
|
설명 | 동일한 COMDAT 접기(/OPT:ICF) 링커 최적화를 시작 및 중지할 때 발생합니다. | |
OPT_LBR | 유형 | 활동 |
부모 | PASS1 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 OptLBR |
|
설명 | 긴 분기(/OPT:LBR) 링커 최적화를 시작 및 중지할 때 발생합니다. | |
OPT_REF | 유형 | 활동 |
부모 | PASS1 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 OptRef |
|
설명 | 참조되지 않은 함수 및 데이터 제거(/OPT:REF) 링커 최적화를 시작 및 중지할 때 발생합니다. | |
PASS1 | 유형 | 활동 |
부모 | 링커 | |
자녀 |
LTCG OPT_ICF OPT_LBR OPT_REF |
|
속성 | 없음 | |
캡처 클래스 |
활동 패스1 |
|
설명 | 링커의 패스 1을 시작 및 중지할 때 발생합니다. | |
PASS2 | 유형 | 활동 |
부모 | 링커 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 Pass2 |
|
설명 | 링커의 패스 2를 시작 및 중지할 때 발생합니다. | |
사전 컴파일된 헤더 | 유형 | 활동 |
부모 | 프론트엔드_패스 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
SimpleEvent TranslationUnitType 사전 컴파일 헤더 |
|
설명 | 프런트 엔드 전달이 시작될 때 발생하며 PCH(미리 컴파일된 헤더) 변환 단위가 처리 중임을 나타냅니다. | |
PRE_LTCG_OPT_REF | 유형 | 활동 |
부모 | PASS1 | |
자녀 | 없음 | |
속성 | 없음 | |
캡처 클래스 |
활동 PreLTCGOptRef |
|
설명 | 참조되지 않은 함수 및 데이터를 제거하는(/OPT:REF) 링커 최적화 패스를 시작 및 중지할 때 발생합니다. 링크 타임 코드를 생성하기 전에 수행됩니다. | |
SYMBOL_NAME | 유형 | 단순 이벤트 |
부모 | C1_DLL | |
자녀 | 없음 | |
속성 | - 형식 키 - 형식의 이름 |
|
캡처 클래스 |
SimpleEvent SymbolName |
|
설명 | 프런트 엔드 패스의 끝에서 템플릿 인스턴스화에 관련된 모든 형식에 대해 한 번 발생합니다. 키는 형식에 대한 숫자 식별자이고 이름은 텍스트 표현입니다. 형식 키는 분석 중인 추적 내에서 고유합니다. 그러나 다른 컴파일러 프런트 엔드 패스에서 들어오는 다른 키가 동일한 형식을 가리킬 수 있습니다. 서로 다른 컴파일러 프런트 엔드 패스 간 형식을 비교하려면 이름을 사용해야 합니다. 모든 템플릿 인스턴스화가 발생한 후에는 컴파일러 프런트 엔드 패스의 끝에 SYMBOL_NAME 이벤트가 발생합니다. | |
템플릿 인스턴스화 | 유형 | 활동 |
부모 |
C1_DLL 프론트엔드_파일 템플릿 인스턴스화 |
|
자녀 | 템플릿 인스턴스화 | |
속성 | - 특수 형식의 키 - 기본 템플릿 형식의 키 - 인스턴스화된 템플릿의 종류 |
|
캡처 클래스 |
활동 TemplateInstantiation |
|
설명 | 템플릿 인스턴스화가 시작 및 종료할 때 발생합니다. 기본 템플릿 형식(예: vector )이 인스턴스화되어 특수 형식(예: std::vector<int> )이 생성됩니다. 두 형식 모두에 대한 키가 제공됩니다.
SYMBOL_NAME 이벤트를 사용하여 키를 형식 이름으로 변환합니다. 형식 키는 분석 중인 추적 내에서 고유합니다. 그러나 다른 컴파일러 프런트 엔드 패스에서 들어오는 다른 키가 동일한 형식을 가리킬 수 있습니다. 서로 다른 컴파일러 프런트 엔드 패스 간에 형식을 비교하려면 기호 이름을 사용해야 합니다. 이 이벤트는 재귀적입니다. 재귀는 프런트 엔드가 중첩된 템플릿을 인스턴스화하는 경우에 발생합니다. |
|
스레드 | 유형 | 활동 |
부모 |
CODE_GENERATION TOP_DOWN |
|
자녀 | 기능 | |
속성 | 없음 | |
캡처 클래스 |
활동 스레드 |
|
설명 | 컴파일러 백 엔드 스레드 실행을 시작 및 종료할 때 발생합니다. 스레드 일시 중단은 종료로 간주됩니다. 스레드 해제는 시작으로 간주됩니다. | |
TOP_DOWN | 유형 | 활동 |
부모 | 전체_프로그램_분석 | |
자녀 |
기능 스레드 |
|
속성 | 없음 | |
캡처 클래스 |
활동 TopDown |
|
설명 | 전체 프로그램 분석의 하향식 패스를 시작 및 중지할 때 발생합니다. | |
번역 단위 유형 | 유형 | 활동 |
부모 | 프론트엔드_패스 | |
자녀 |
모듈 HEADER_UNIT 사전 컴파일된 헤더 |
|
속성 | - 변환 단위의 유형입니다. | |
캡처 클래스 |
SimpleEvent TranslationUnitType |
|
설명 | 프런트 엔드 패스가 시작할 때 발생합니다. 이 형식은 이 패스가 모듈, 헤더 단위 또는 미리 컴파일된 헤더 중 어떤 것을 처리하고 있는지 식별합니다. | |
전체 프로그램 분석 | 유형 | 활동 |
부모 | C2_DLL | |
자녀 |
BOTTOM_UP TOP_DOWN |
|
속성 | 없음 | |
캡처 클래스 |
활동 WholeProgramAnalysis |
|
설명 | 링크 타임 코드 생성의 전체 프로그램 분석 단계를 시작 및 중지할 때 발생합니다. |