C++ Build Insights SDK 與 Visual Studio 2017 和更新版本相容。 若要查看這些版本的文件,請將本文的 Visual Studio 版本選取器控制項設定為 Visual Studio 2017 或更新版本。 其位於此頁面目錄頂端。
函 Relog 式可用來從 Windows 事件追蹤 (ETW) 追蹤讀取 MSVC 事件,並將其寫入新的修改 ETW 追蹤中。
語法
template <
typename... TAnalyzerGroupMembers,
typename... TReloggerGroupMembers>
RESULT_CODE Relog(
const char* inputLogFile,
const char* outputLogFile,
unsigned numberOfAnalysisPasses,
unsigned long long systemEventsRetentionFlags,
StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);
template <
typename... TAnalyzerGroupMembers,
typename... TReloggerGroupMembers>
RESULT_CODE Relog(
const wchar_t* inputLogFile,
const wchar_t* outputLogFile,
unsigned numberOfAnalysisPasses,
unsigned long long systemEventsRetentionFlags,
StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);
範本參數
TAnalyzerGroupMembers
此範本參數套件一律會被推導。
TReloggerGroupMembers
此範本參數套件一律會被推導。
參數
inputLogFile
您要從中讀取事件的輸入 ETW 追蹤。
outputLogFile
要在其中寫入新事件的檔案。
numberOfAnalysisPasses
在輸入追蹤上執行的分析傳遞數目。 追蹤會在每個分析階段通過所提供的分析器群組一次。
systemEventsRetentionFlags
位掩碼,指定要保留在重新記錄追蹤中的系統 ETW 事件。 如需詳細資訊,請參閱RELOG_RETENTION_SYSTEM_EVENT_FLAGS。
analyzerGroup
用於重新記錄工作階段分析階段的分析器群組。 呼叫 MakeStaticAnalyzerGroup 以建立分析器群組。 若要使用從 MakeDynamicAnalyzerGroup取得的動態分析器群組,請先將其位址傳遞至 MakeStaticAnalyzerGroup,將其封裝在靜態分析器群組內。
reloggerGroup
重新將事件記錄到outputLogFile中指定的追蹤檔的重新記錄器群組。 呼叫 MakeStaticReloggerGroup 以建立重新記錄器群組。 若要使用從 MakeDynamicReloggerGroup取得的動態重新記錄器群組,請先將其位址傳遞至 MakeStaticReloggerGroup,將其封裝在靜態重新記錄器群組內。
傳回值
RESULT_CODE 列舉中的結果代碼。
備註
輸入追蹤會通過分析器群組 numberOfAnalysisPasses 次數。 重新記錄傳遞沒有類似的選項。 在所有分析完成後,該軌跡只會通過重錄群一次。
不支援從重新記錄器類別內重新記錄系統事件,例如CPU範例。 使用參數 systemEventsRetentionFlags 來決定要保留在輸出追蹤中的系統事件。
函 relog 式取決於 COM API。 您必須先呼叫 CoInitialize ,才能呼叫 relog。 完成後,呼叫 CoUninitialize 一次 relog 。 如果您 relog 呼叫時未先呼叫 CoInitialize ,您會收到錯誤碼 9 (RESULT_CODE_FAILURE_START_RELOGGER)。