共用方式為


Relog

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)。