問題タブ [etw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logging - ETW-乱雑なインターフェイスに最適な修正/クラスライブラリ?
ETWとは、「Windowsのイベントトレース」を意味します。
私の実験によると、1つの利点は、設計上、非常にビジーな状態でイベントを記録できない場合があります。それ以外の場合は、カーネル機能から期待できるように、正常に機能します。ETWは、キャッシュとマルチスレッドのロギングの問題を回避するためにプロセッサごとのバッファリングが必要な場合、町で唯一のゲームです。特にアフィニティなどを割り当てない場合。
ただし、インターフェイスは煩雑であり、EventWrite()に関連するMicrosoft推奨のアプローチを検討するとさらに悪化します。この強力なカーネルサブシステムへのプログラマーのアクセスを合理化するために利用できる最善の努力は何ですか?私はC++インターフェースに興味がありますが、この質問を見ている他の人は他の言語についても知りたいと思うでしょう。
asp.net - ASP.NET - ETW に独自のメッセージを書き込むことはできますか?
ASP.NET Events ETW (Event Tracing for Windows) プロバイダーを使用して、ASP.NET ページからトレースにカスタム メッセージを書き込むことはできますか?
windows - Windows ETL トレース ファイル形式?
TraceEvent API 関数を使用してバイナリ データの不透明なブロブをログに記録するためにシステムで使用される ETW プロバイダーを作成しました。私のシステムは本質的に高スループットのイベント処理システムであり、特定のオブジェクトがシステムを通過する際にシリアライズされた状態を (安価に) キャプチャできるようにしたいと考えています。これにより再生可能性機能が提供されるため、将来いつでもイベント トレースを再生し、アプリケーションで特定の状態を引き起こしたイベントの正確なシーケンスを再現できます。
まだ初期段階にあるため、現時点でトレースを制御するには、logman や tracelog などのツールのいずれかを使用する必要があります。これらのツールは、トレース コントローラーを作成して、.etl 拡張子を持つトレース ファイルにイベントを記録できます。イベントをリアルタイムで消費し、イベントを自分でファイルに書き込むことができるスタンドアロンコントローラーを作成できることはわかっていますが、この段階ではそれを避けたいと思います (怠惰と呼びます:))。利用可能?
それで、誰かが .etl ファイルのバイナリ形式について洞察を持っていますか? tracedmp のようなものがそれらを読み取って CSV を生成できることは知っていますが、それはバイナリ部分には役立ちません。これらのファイルを読み取って、書き込んだ BLOB を解析できれば、基本的に再生可能性が得られますが、このファイル形式では何も見つかりません。
ありがとう、ポール
c++ - C++ Windows クライアントから ETW を使用する方法
ユーザーモードの Windows クライアントがトレース情報を書き出せるようにするために、Event Tracing for Windows (ETW) を研究しています。既存のドキュメントは、簡単に言えば、非常に不完全です。本当に役立つのは、ETW を使用してトレース メッセージを書き出す単純な C++ の例です。そのような例は存在しますか?他にお勧めの ETW ドキュメントはありますか?
log4net - .net、ユーザー モード、およびドライバーからの ETW 追跡
一部が.net、c++ユーザーモード、およびC++ドライバーにあるアプリケーションがあります。アプリケーションは、オンデマンドで実行されるいくつかの実行可能ファイルに分割され、LPC (プロセスは異なるセッション (winlogon) で実行されます) を使用して相互に通信します。
現在、.net および c++ ユーザーモードが LPC メッセージを送信することによって通信する、自作のログ サービスがあります。ドライバーは DbgPrint を使用しますが、コードの実行が 30% 遅くなるため、常に有効になっているとは限りません (大量のログが記録されています)。
すべてのログを 1 か所に書き込み、できればロガーを自分で作成したくありません (log4cpp と log4net が大好きです)。要件は、すべての実行可能ファイルとドライバーを 1 つの場所に書き込み、オーバーヘッドを最小限に抑えることです。
私はETWが道のりであることを読みましたが、log4cppやlog4netのようにそれを使用するすでに書かれたロガーを見つけることができませんでした.
基本的に私の質問は、私が使用できるlog4cppとlog4netのETWアペンダーがすでに実装されているかどうか知っていますか?
windows - 「Event Tracing for Windows」イベントの消費
この質問への回答により、トレースのニーズに「Event Tracing for Windows」を使用することを検討するようになりました。NTraceに遭遇しました。これは、C# コードから ETW イベントを生成する良い方法のようです (XP 互換の「クラシック プロバイダー」モデルを使用)。
ただし、これらのイベントを使用する簡単な方法を見つけることができません-リアルタイムで表示したり、ファイルにログを記録したりします. 私が見つけた唯一の方法は、NTrace のドキュメントに記載されている方法で、Windows DDK の一部としてのみ利用可能なツールを使用することです。
現場で複雑な問題が発生した場合、トレースを含むファイルを作成するようユーザーに依頼する必要がある場合があります。ユーザーに DDK のダウンロードを要求したり、これを行うために多くの複雑な操作を実行したりすることはできません。
ETW イベントをファイルに記録するための簡単で使いやすい方法はありますか?
また、管理者として実行していない場合、誰かが Windows Vista/7 で ETW イベントを使用することは可能ですか?
windows-7 - Win7WOW64のアプリケーションの奇妙なスレッド
3つのスレッドがあり、Windows 7より前の任意のWindows(32ビットまたは64ビット)で正常に動作するアプリケーションのWindows 7 x64で4〜6のスレッドを観察しています。
Process Explorerは、次の「不明な」スレッドを表示します。
ランダムな間隔の後、次のスレッドが表示されます。
その後、アプリケーションはスレッドを作成できません(エラーコード8、十分な空き容量...)。
一部のシステムDLLはETWスレッドなどを作成しているように見えます。誰かがこれらのスレッドの目的とそれらを管理する方法を知っていますか?
memory - xperf のヒープ プロファイリング ツールを使用してカスタム アロケーターをトレースするにはどうすればよいですか?
xperf (Windows Performance Analysis Toolkit の一部) は、ヒープ分析でメモリ使用量を追跡するのに非常に役立ちます。ただし、私のアプリはカスタム アロケーターを使用しています。これは、VirtualAlloc を介してチャンクを直接取得し、独自のヒープを管理します。HeapAlloc/HeapFree/etc を生成したいです。独自の割り当て関数から自分自身でイベントを作成できるため、一連のカスタム ETW イベントを定義する必要なく、ツールをそのまま使用できます。これを行うことは可能ですか?
wpf - XPerf.exeを使用してWPFETWイベントを取得する
XPerf.exeにフィードしてWPFETWプロバイダー(Microsoft-Windows-WPF?a42c77db-874f-422e-9b44-6d89fe2bd3e5?E13B77A8-14B6-11DE)をロードするためのコマンドラインスイッチとパラメーターの正しい組み合わせがわかりません。 -8069-001B212B5009}?)、特定のイベント(WClientInputMessage)をリッスンします。
誰かがこれがどのように見えるべきかについて何か洞察を与えることができますか?ドキュメントの散在する断片(http://windowsclient.net/wpf/white-papers/event-tracing-wpf.aspxを含む)と不可解な「xperf-helpstart」テキストは知識の荒れ地のようです。
c++ - Windows 7 で起動時のイベントを読み取るにはどうすればよいですか?
ファイルの読み取りに成功せずに ETW 関数を使用しようとしています。
起動時のイベントをキャプチャするため。
私はさまざまな機能を試しました -
- OpenTrace でエラー 161 が発生する
- EvtQuery でエラー 15000 が返される
システム トレース ファイルを読み取るネイティブ コードの例はありますか?