分享方式:


C++ Build Insights SDK:事件資料表

C++ Build Insights SDK 與 Visual Studio 2017 和更新版本相容。 若要查看這些版本的檔,請將本文的 Visual Studio 版本 選取器控制項設定為 Visual Studio 2017 或更新版本。 其位於此頁面目錄頂端。

編譯程式事件

編譯 器
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
BACK_END_PASS

編譯器前端事件

C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
SYMBOL_NAME
MODULE
HEADER_UNIT
PRECOMPILED_HEADER

編譯器後端事件

C2_DLL
WHOLE_PROGRAM_ANALYSIS
TOP_DOWN
BOTTOM_UP
CODE_GENERATION
執行緒
FUNCTION
FORCE_INLINEE

連結器事件

連接
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

事件資料表

Event 屬性 說明
BACK_END_PASS 類型 活動​​
上層 編譯 器
子女 C2_DLL
屬性 - 輸入來源檔案的絕對路徑
- 輸出物件檔的絕對路徑
擷取類別 Activity
CompilerPass
BackEndPass
描述 發生在編譯器後端傳遞的啟動和停止。 此傳遞負責優化剖析的 C/C++ 原始程式碼,並將它轉換成機器碼。
BOTTOM_UP 類型 活動​​
上層 WHOLE_PROGRAM_ANALYSIS
子女
屬性
擷取類別 Activity
BottomUp
描述 發生在整個程式分析的下移階段的開始和停止。
C1_DLL 類型 活動​​
上層 FRONT_END_PASS
子女 FRONT_END_FILE
SYMBOL_NAME
TEMPLATE_INSTANTIATION
屬性
擷取類別 Activity
C1DLL
描述 發生在 c1.dll c1xx.dll 調用的 開始和停止。 這些 DLL 是編譯器的 C 和 C++ 前端。 它們只由編譯器驅動程式 ( cl.exe ) 叫用。
C2_DLL 類型 活動​​
上層 BACK_END_PASS
LTCG
子女 CODE_GENERATION
WHOLE_PROGRAM_ANALYSIS
屬性
擷取類別 Activity
C2DLL
描述 發生在 c2.dll 調用的 開始和停止。 此 DLL 是編譯器的後端。 編譯器驅動程式會呼叫它 ( cl.exe )。 使用連結時間程式碼產生時,連結器 ( link.exe ) 也會叫用它。
CODE_GENERATION 類型 活動​​
上層 C2_DLL
子女 FUNCTION
執行緒
屬性
擷取類別 Activity
CodeGeneration
描述 發生在後端程式碼產生階段的開始和停止。
COMMAND_LINE 類型 簡單事件
上層 編譯 器
連接
子女
屬性 - 用來叫 用 cl.exe 或 link.exe 的命令列
擷取類別 SimpleEvent
CommandLine
描述 在編譯器和連結器完成評估命令列時發生。 評估的命令列包含透過回應檔傳遞的所有 cl.exe link.exe 參數。 它也包含透過 CL、_CL_、LINK 和 _LINK_等環境變數傳遞的 cl.exe link.exe 參數。
編譯 器 類型 活動​​
上層
子女 BACK_END_PASS
COMMAND_LINE
ENVIRONMENT_VARIABLE
FILE_INPUT
OBJ_OUTPUT
FRONT_END_PASS
屬性 - 編譯器版本
- 工作目錄
- 叫 用 cl.exe 的絕對路徑
擷取類別 Activity
調用
編譯 器
描述 發生在 cl.exe 調用的 開始和停止。
ENVIRONMENT_VARIABLE 類型 簡單事件
上層 編譯 器
連接
子女
屬性 - 環境變數的名稱
- 環境變數的值。
擷取類別 SimpleEvent
EnvironmentVariable
描述 在叫用 cl.exe link.exe ,針對每個現有的環境變數發生一次。
EXECUTABLE_IMAGE_OUTPUT 類型 簡單事件
上層 連接
子女
屬性 - DLL 或可執行檔輸出檔的絕對路徑。
擷取類別 SimpleEvent
FileOutput
ExecutableImageOutput
描述 當其中一個連結器輸入是 DLL 或可執行影像檔時發生。
EXP_OUTPUT 類型 簡單事件
上層 連接
子女
屬性 - .exp 輸出檔的 絕對路徑。
擷取類別 SimpleEvent
FileOutput
ExpOutput
描述 當其中一個 連結器輸出是 .exp 檔案時發生。
FILE_INPUT 類型 簡單事件
上層 編譯 器
連接
子女
屬性 - 輸入檔的絕對路徑
- 輸入檔的類型
擷取類別 SimpleEvent
FileInput
描述 發生于宣告 cl.exe link.exe 輸入時。
FORCE_INLINEE 類型 簡單事件
上層 FUNCTION
子女
屬性 - 強制內嵌函式的名稱。
- 強制內嵌函式的大小,以中繼指令計數表示。
擷取類別 Activity
ForceInlinee
描述 發生于透過 關鍵字使用 __forceinline 強制內嵌至另一個函式時。
FRONT_END_FILE 類型 活動​​
上層 C1_DLL
FRONT_END_FILE
子女 FRONT_END_FILE
TEMPLATE_INSTANTIATION
屬性 - 檔案的絕對路徑。
擷取類別 Activity
FrontEndFile
描述 當編譯器前端啟動並停止處理檔案時發生。 這個事件是遞迴的。 當前端剖析包含的檔案時,會發生遞迴。
FRONT_END_PASS 類型 活動​​
上層 編譯 器
子女 C1_DLL
MODULE
HEADER_UNIT
PRECOMPILED_HEADER
屬性 - 輸入來源檔案的絕對路徑
- 輸出物件檔的絕對路徑
擷取類別 Activity
CompilerPass
FrontEndPass
描述 發生在編譯器前端傳遞的啟動和停止。 此傳遞負責剖析 C/C++ 原始程式碼,並將其轉換成中繼語言。
功能 類型 活動​​
上層 CODE_GENERATION
執行緒
TOP_DOWN
子女 FORCE_INLINEE
屬性 - 函式的名稱
擷取類別 Activity
Function
描述 在開始和結束產生函式的程式碼時發生。
HEADER_UNIT 類型 活動​​
上層 FRONT_END_PASS
子女
屬性
擷取類別 SimpleEvent
TranslationUnitType
HeaderUnit
描述 發生在前端階段的開頭,並表示正在處理標頭單位轉譯單位。
IMP_LIB_OUTPUT 類型 簡單事件
上層 連接
子女
屬性 - 匯入程式庫輸出檔的絕對路徑。
擷取類別 SimpleEvent
FileOutput
ImpLibOutput
描述 當其中一個連結器輸出是匯入程式庫時發生。
LIB_OUTPUT 類型 簡單事件
上層 連接
子女
屬性 - 靜態程式庫輸出檔的絕對路徑。
擷取類別 SimpleEvent
FileOutput
LibOutput
描述 當其中一個連結器輸出是靜態程式庫時發生。
連接 類型 活動​​
上層
子女 COMMAND_LINE
ENVIRONMENT_VARIABLE
EXECUTABLE_IMAGE_OUTPUT
EXP_OUTPUT
FILE_INPUT
IMP_LIB_OUTPUT
LIB_OUTPUT
PASS1
PASS2
屬性 - 連結器版本
- 工作目錄
- 叫 用之 link.exe 的絕對路徑
擷取類別 Activity
調用
連結器
描述 發生在 link.exe 調用的 開始和停止。
LTCG 類型 活動​​
上層 PASS1
子女 C2_DLL
屬性
擷取類別 Activity
LTCG
描述 發生在連結時間程式碼產生開始和停止時。
模組 類型 活動​​
上層 FRONT_END_PASS
子女
屬性
擷取類別 SimpleEvent
TranslationUnitType
模組
描述 發生在前端階段的開頭,並表示正在處理模組轉譯單位。
OBJ_OUTPUT 類型 簡單事件
上層 編譯 器
子女
屬性 - .obj 輸出檔的 絕對路徑
擷取類別 SimpleEvent
FileOutput
ObjOutput
描述 針對 cl.exe 所產生的 每個 .obj 輸出發生一次。
OPT_ICF 類型 活動​​
上層 PASS1
子女
屬性
擷取類別 Activity
OptICF
描述 發生于相同 COMDAT 折迭 (/OPT:ICF) 連結器優化的開始和停止。
OPT_LBR 類型 活動​​
上層 PASS1
子女
屬性
擷取類別 Activity
OptLBR
描述 發生在長分支 (/OPT:LBR) 連結器優化的開始和停止。
OPT_REF 類型 活動​​
上層 PASS1
子女
屬性
擷取類別 Activity
OptRef
描述 發生于未參考函式的開始和停止,以及資料消除 (/OPT:REF) 連結器優化。
PASS1 類型 活動​​
上層 連接
子女 LTCG
OPT_ICF
OPT_LBR
OPT_REF
屬性
擷取類別 Activity
Pass1
描述 發生在連結器傳遞 1 的開始和停止。
PASS2 類型 活動​​
上層 連接
子女
屬性
擷取類別 Activity
Pass2
描述 發生在連結器傳遞 2 的開始和停止。
PRECOMPILED_HEADER 類型 活動​​
上層 FRONT_END_PASS
子女
屬性
擷取類別 SimpleEvent
TranslationUnitType
PrecompiledHeader
描述 發生在前端階段的開頭,並表示正在處理先行編譯標頭 (PCH) 轉譯單位。
PRE_LTCG_OPT_REF 類型 活動​​
上層 PASS1
子女
屬性
擷取類別 Activity
PreLTCGOptRef
描述 發生在連結器優化傳遞的開始和停止時,可排除未參考的函式和資料 (/OPT:REF)。 它會在產生連結時間程式碼之前完成。
SYMBOL_NAME 類型 簡單事件
上層 C1_DLL
子女
屬性 - 類型索引鍵
- 類型的名稱
擷取類別 SimpleEvent
SymbolName
描述 在前端階段結束時發生:針對範本具現化所涉及的每一種類型一次。 索引鍵是型別的數值識別碼,而名稱則是其文字標記法。 類型索引鍵在所分析的追蹤內是唯一的。 不過,來自不同編譯器前端傳遞的不同索引鍵可能會指向相同的類型。 比較不同編譯器前端階段之間的類型需要使用其名稱。 在編譯器前端階段結束時發出SYMBOL_NAME事件,所有範本具現化都已發生。
TEMPLATE_INSTANTIATION 類型 活動​​
上層 C1_DLL
FRONT_END_FILE
TEMPLATE_INSTANTIATION
子女 TEMPLATE_INSTANTIATION
屬性 - 特製化類型的索引鍵
- 主要範本類型的索引鍵
- 具現化的範本類型
擷取類別 Activity
TemplateInstantiation
描述 發生在範本具現化的開頭和結尾。 主要範本類型 (例如 vector ) 會具現化,導致特製化類型(例如 )。 std::vector<int> 這兩種類型都會提供索引鍵。 使用 SYMBOL_NAME 事件,將索引鍵轉換成類型的名稱。 類型索引鍵在所分析的追蹤內是唯一的。 不過,來自不同編譯器前端傳遞的不同索引鍵可能會指向相同的類型。 比較不同編譯器前端階段之間的類型需要使用符號名稱。 這個事件是遞迴的。 在某些情況下,當前端具現化巢狀範本時,就會發生遞迴。
執行緒 類型 活動​​
上層 CODE_GENERATION
TOP_DOWN
子女 FUNCTION
屬性
擷取類別 Activity
Thread
描述 發生在編譯器後端執行緒執行的開頭和結尾。 暫停的執行緒會被視為結束。 正在喚醒的執行緒會被視為已啟動。
TOP_DOWN 類型 活動​​
上層 WHOLE_PROGRAM_ANALYSIS
子女 FUNCTION
執行緒
屬性
擷取類別 Activity
TopDown
描述 發生于整個程式分析從上到下階段的開始和停止。
TRANSLATION_UNIT_TYPE 類型 活動​​
上層 FRONT_END_PASS
子女 MODULE
HEADER_UNIT
PRECOMPILED_HEADER
屬性 - 翻譯單位的類型。
擷取類別 SimpleEvent
TranslationUnitType
描述 發生在前端階段的開頭。 此類型會識別此傳遞是否正在處理模組、標頭單位或先行編譯標頭。
WHOLE_PROGRAM_ANALYSIS 類型 活動​​
上層 C2_DLL
子女 BOTTOM_UP
TOP_DOWN
屬性
擷取類別 Activity
神秘leProgramAnalysis
描述 發生在連結時間程式碼產生之整個程式分析階段的開始和停止。