Aracılığıyla paylaş


Relog

C++ Build Insights SDK'sı Visual Studio 2017 ve sonraki sürümlerle uyumludur. Bu sürümlerin belgelerini görmek için bu makalenin Visual Studio Sürüm seçici denetimini Visual Studio 2017 veya üzeri olarak ayarlayın. Bu sayfadaki içindekiler tablosunun en üstünde bulunur.

Relog İşlev, Windows için Olay İzleme (ETW) izlemesinden MSVC olaylarını okumak ve bunları yeni, değiştirilmiş bir ETW izlemesine yazmak için kullanılır.

Sözdizimi

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

Parametreler

TAnalyzerGroupMembers
Bu parametre her zaman çıkarılır.

TReloggerGroupMembers
Bu parametre her zaman çıkarılır.

inputLogFile
Olayları okumak istediğiniz giriş ETW izlemesi.

outputLogFile
Yeni olayların yazıldığı dosya.

numberOfAnalysisPasses
Giriş izlemesinde çalıştırılacak çözümleme geçişi sayısı. İzleme, analiz geçişi başına bir kez sağlanan çözümleyici grubundan geçirilir.

systemEventsRetentionFlags
Yeniden yer değiştirme izlemesinde tutulacak sistem ETW olaylarını belirten bit maskesi. Daha fazla bilgi için bkz . RELOG_RETENTION_SYSTEM_EVENT_FLAGS.

analyzerGroup
Yeniden dağıtma oturumunun analiz aşaması için kullanılan çözümleyici grubu. Çözümleyici grubu oluşturmak için MakeStaticAnalyzerGroup'u çağırın. MakeDynamicAnalyzerGroup'tan alınan dinamik çözümleyici grubunu kullanmak için önce adresini MakeStaticAnalyzerGroupöğesine geçirerek statik bir çözümleyici grubu içinde kapsülleyin.

reloggerGroup
Olayları outputLogFile içinde belirtilen izleme dosyasına yeniden kaydeden relogger grubu. Yeniden günlükçü grubu oluşturmak için MakeStaticReloggerGroup'u çağırın. MakeDynamicReloggerGroup'tan alınan dinamik bir yeniden günlükçü grubunu kullanmak için önce adresini MakeStaticReloggerGroupöğesine geçirerek statik bir yeniden günlükçü grubu içinde kapsülleme yapın.

Dönüş Değeri

RESULT_CODE sabit tablosundan bir sonuç kodu.

Açıklama

Giriş izlemesi, çözümleyici grubu numberOfAnalysisPasses zamanları üzerinden geçirilir. Geçişleri yeniden dağıtmak için benzer bir seçenek yoktur. İzleme, tüm analiz geçişleri tamamlandıktan sonra relogger grubuna yalnızca bir kez geçirilir.

CPU örnekleri gibi sistem olaylarının bir yeniden günlükçü sınıfı içinden yeniden taşınmasını desteklemez. Çıkış izlemesinde hangi sistem olaylarının tutulacaklarına karar vermek için systemEventsRetentionFlags parametresini kullanın.

İşlev, relog COM API'sine bağlıdır. çağrısına başlamadan önce aramanız CoInitialize reloggerekir. İşlem tamamlandıktan sonra relog arayınCoUninitialize. Önce arama yapmadan ararsanız relog CoInitialize hata kodu 9 (RESULT_CODE_FAILURE_START_RELOGGER) alırsınız.