15

EventSourceWindows Performance Analyzer を使用して ETW イベントを発生させ、それらを表示したいと考えています。

私は基本を持っていますEventSource

[EventSource(Name = "BasicEventSource")]
public class ETWLogger : EventSource
{
#if DEBUG
    private const bool ThrowOnError = true;
#else
    private const bool ThrowOnError = false;
#endif

    private ETWLogger(bool throwOnError) : base(throwOnError) { }

    private static ETWLogger _log;
    public static ETWLogger Log
    { get { return _log ?? (_log = new ETWLogger(ThrowOnError)); } }

    private static class Keywords
    {
        public const EventKeywords Perf = (EventKeywords) 1;
    }

    [Event(1, Keywords = Keywords.Perf, Level = EventLevel.Informational)]
    public void Startup() { WriteEvent(1, "StartUp"); }
}

Windows Performance Recorder (WPR) で記録すると、Windows Performance Analyzer (WPA) の Generic Events グラフにプロバイダーまたはイベントが表示されません。

御時間ありがとうございます :)

4

2 に答える 2

2

WPR は custom について何も知らないEventSourceため、有効にできるように記録プロファイルを作成する必要があります。WPT には、作業を開始するのに役立ついくつかのサンプル プロファイルが同梱されています。

WPR の 8.1 バージョンは、PerfView と同じ命名規則をサポートしています。これ*YourEventSourceは、プロファイルで GUID の代わりに使用できることを意味します。

私の経験では、一部のEventSource機能は WPA の 8.1 バージョンでは十分にサポートされていません。たとえば、タスクを使用すると、正しく表示されません。ただし、 の基本的な使用法はEventSourceEventSource.

もう 1 つのオプションは、PerfView を使用してトレースを収集し、WPA で分析することです (PerfView よりも優先する場合)。

于 2013-12-30T16:47:01.383 に答える
1

WPR と WPA は EventSource をサポートしていませんでしたが、新しい 8.1 ADK ではサポートしています。ここを参照してください。

于 2013-12-30T15:45:50.360 に答える