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 |
|
描述 | 發生在連結時間程式碼產生之整個程式分析階段的開始和停止。 |
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: