다음을 통해 공유


C++ Build Insights SDK: 이벤트 테이블

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.exelink.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
설명 링크 타임 코드 생성의 전체 프로그램 분석 단계를 시작 및 중지할 때 발생합니다.