Condividi tramite


Ripetere il log

Build Insights SDK per C++ è compatibile con Visual Studio 2017 e versioni successive. Per visualizzare la documentazione per queste versioni, impostare il controllo selettore della versione di Visual Studio per questo articolo su Visual Studio 2017 o versione successiva. Si trova nella parte superiore del sommario in questa pagina.

La Relog funzione viene usata per leggere gli eventi MSVC da una traccia ETW (Event Tracing for Windows) e scriverli in una nuova traccia ETW modificata.

Sintassi

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

Parametri

TAnalyzerGroupMembers
Questo parametro viene sempre dedotto.

TReloggerGroupMembers
Questo parametro viene sempre dedotto.

inputLogFile
Traccia ETW di input da cui si desidera leggere gli eventi.

outputLogFile
File in cui scrivere i nuovi eventi.

numeroDiPassaggiDiAnalisi
Numero di passaggi di analisi da eseguire nella traccia di input. La traccia viene passata attraverso il gruppo di analizzatori fornito una volta per ogni passaggio di analisi.

systemEventsRetentionFlags
Maschera di bit che specifica gli eventi ETW di sistema da mantenere nella traccia registrata di nuovo. Per altre informazioni, vedere RELOG_RETENTION_SYSTEM_EVENT_FLAGS.

analyzerGroup
Gruppo di analizzatori usato per la fase di analisi della sessione di rilogging. Chiamare MakeStaticAnalyzerGroup per creare un gruppo di analizzatori. Per usare un gruppo analizzatore dinamico ottenuto da MakeDynamicAnalyzerGroup, incapsularlo prima all'interno di un gruppo di analizzatori statici passandone l'indirizzo a MakeStaticAnalyzerGroup.

reloggerGroup
Gruppo di rilogger che registra nuovamente gli eventi nel file di traccia specificato in outputLogFile. Chiamare MakeStaticReloggerGroup per creare un gruppo di rilogger. Per usare un gruppo di rilogger dinamico ottenuto da MakeDynamicReloggerGroup, incapsularlo prima all'interno di un gruppo di rilogger statico passandone l'indirizzo a MakeStaticReloggerGroup.

Valore restituito

Codice di risultato dell'enumerazione RESULT_CODE .

Commento

La traccia di input viene passata attraverso il numero del gruppo analizzatoreOfAnalysisPasses volte. Non esiste un'opzione simile per il rilogging dei passaggi. La traccia viene passata attraverso il gruppo di rilogger una sola volta, dopo il completamento di tutti i passaggi di analisi.

Il rilogging degli eventi di sistema, ad esempio esempi di CPU dall'interno di una classe relogger, non è supportato. Usare il parametro systemEventsRetentionFlags per decidere quali eventi di sistema conservare nella traccia di output.

La relog funzione dipende dall'API COM. È necessario chiamare prima di chiamare CoInitializerelog. CoUninitialize Una volta completata la chiamatarelog. Se si chiama relog senza prima chiamata a CoInitialize , si otterrà il codice di errore 9 (RESULT_CODE_FAILURE_START_RELOGGER).