問題タブ [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.

0 投票する
2 に答える
677 参照

asp.net - ASP.NET / IIS ContextId にアクセスする方法

特定の ASP.NET 要求に対して、この "ContextId" がイベント ログに記録されるのを何度も見てきました。私は最近、ASP.NET によってプッシュされる ETW イベントの調査を開始しました。この ContextID を、起動する自分のイベントで再利用したいと考えています。

これどうやってするの?

System.Threading.Thread.CurrentContext にはないようです。常に 0 です。

0 投票する
1 に答える
368 参照

workflow-foundation - WF に ETWTrackingParticipant を使用している場合、Win2k3 の「アプリケーションとサービス ログ」はどこにありますか?

Win2k3 サーバーでホストされている WF 4 で使用する場合、ETW ( Event Tracing for Windows ) データをどのように表示しますか? ETWTrackingParticipantWindows 7 または Server 2k8 の場合は、Event Viewer->Application and Services Logs->Microsoft->Windows->Application-Server Applications->Analytic の下にあります。Windows 2003 Server で実行されているこの追跡データを確認する方法はありますか?

0 投票する
0 に答える
581 参照

etw - イベント ビューアーで名前ではなく番号として表示されるカスタム ETW イベントのタスク カテゴリ

ETW を使用してアプリケーションにログを実装しています。

  • ecmangen.exe を使用して、一連のカスタム イベント、テンプレート、タスク、およびキーワードを含むマニフェストを作成しました。
  • mc.exe を使用して、コードで使用する対応する C# クラスをコンパイルおよび生成しました。
  • この生成されたクラスをコードで使用して、イベントを発行しました。
  • wevtutil を介してマニフェストをインポートし、イベント トレース セッション (Win2K8R2 - パフォーマンス - データ コレクター セット) を介してイベントをキャプチャしました。

生成されたトレース ファイルをイベント ビューアで開くと、予期していたイベントが表示されます。しかし、カスタム タスク カテゴリとキーワードが、名前ではなく数値形式で表示されていることがわかりました。

これらの値を変換する必要がありますか? それとも、これについて間違った方法で行っていますか?

0 投票する
2 に答える
5946 参照

.net - .NET トレース: "デフォルト" リスナーとは?

.NET ユーザーのトレースのすべての例では、" Default" リスナーを削除します。

デフォルトのリスナーとは何ですか? また、デフォルトで存在するのはなぜですか?

Microsoftの担当者が、さまざまなリスナーでオーバーヘッドのベンチマークを行いました

トレース リスナとは何Defaultですか?なぜそんなに遅いのですか? ですかOutputDebugString?ファイルへの書き込みよりも2 桁OutputDebugString遅いですか?

TraceListenerを使用するだけの .NET はありますOutputDebugStringか?

デフォルトのトレース リスナとは何ですか?なぜそんなに遅いのですか?なぜ慣習的に削除されるのですか?それが非常に悪い場合、なぜそれがデフォルトなのですか?

0 投票する
1 に答える
2939 参照

windows - Windows Resource MonitorはどのAPIを使用しますか?

Windows Resource Monitorは、(とりわけ)ディスク上のどのファイルがどのプロセスによって現在アクセスされているかを表示します。そして、それはリアルタイムで行われます。どのように?

おそらくETWを使用しており、xperfなどのツールを使用してトレースを生成できることを知っています。しかし、トレースファイルを開始、停止、解析せずにリアルタイムの情報を取得するにはどうすればよいでしょうか。

プログラムで、つまりC#またはC++からデータにアクセスする必要があります。

0 投票する
3 に答える
1554 参照

c++ - スタック ウォーキング パフォーマンスの最適化

現在、dbghelpライブラリを使用して、( GetThreadContext()およびStackWalk64( )を使用して) プロセスのスレッドのスタックをウォークスルーし、各フレームに含まれる戻りアドレスのみを収集します。

ただし、そのオーバーヘッドはシステムの要求に対して大きすぎます。全体の時間は apx です。スタック ウォークごとに 5 ミリ秒 (10 ~ 15 フレーム)。この時間には、GetThreadContext() と、StackWalk64() を呼び出してすべてのフレームを取得するループが含まれます。

とにかく、もっと速くする方法を見つけなければなりません。誰でもどうすればそれができるか考えていますか?


編集:

ETW (Event Tracing for Windows) メカニズムを知っている人はいますか?

その場合、特定の期間に発生したすべてのコンテキスト スイッチを追跡するにはどうすればよいですか? 各コンテキスト スイッチでイベントを発行するイベント プロバイダーはありますか?

0 投票する
1 に答える
2156 参照

c# - TaskSchedulerイベントログからTaskNameを取得します

イベントビューアの[詳細]タブにある情報にアクセスしようとしています。

TaskSchedulerイベントは、System.Diagnostics.EventLogではなく、System.Diagnostics.Eventingを介して利用できることに気付きました。

これまでのところ私はこれを持っています:

しかし、返されたオブジェクトのどこにもEventDataが見つかりません。

この情報(GUIDは削除されています)、具体的には「EventData->TaskName」を見つけようとしています。

0 投票する
3 に答える
1606 参照

c - ETW がいつイベントをドロップしたかを検出する

ETW セッションがイベントをドロップしているかどうかを確認するにはどうすればよいですか?

イベントがドロップされている場合、イベントがドロップされないようにトレース セッションを構成するにはどうすればよいですか?

いくつかのデバッグ作業を支援するカスタム ETW プロバイダーを作成しました。現在、logman.exe を使用してトレース データをキャプチャしています。

結果を表示すると、一部のイベントがドロップされているように見えます。基本的に私は次のようなものを探しています:

イベント A イベント C

これらは介在するイベント B である必要がありますが、トレース ファイルには表示されません。それが起こることは不可能であるべきです.ETWがイベントを落としていると私は信じています.

もちろん、発生している問題がイベントのドロップによるものであり、コードのバグによるものではないことを確認したいと思います。Google を試してみましたが、何も思いつきませんでした。イベントがドロップされているかどうかを確認する方法を知っている人はいますか?

0 投票する
2 に答える
2124 参照

delphi - Windows ETW:StartTraceがエラー87(ERROR_INVALID_PARAMETER)で失敗する

私はWindowsStartTrace関数のイベントトレースを呼び出しています:

エラーコード87(ERROR_INVALID_PARAMETER)で失敗しています。MSDNには、このエラーの一般的な原因がいくつか示されています。

  • プロパティNULLです。
  • SessionHandleNULLです。
  • プロパティLogFileNameOffsetメンバーが無効です。
  • プロパティLoggerNameOffsetメンバーが無効です。
  • プロパティLogFileModeメンバーは、無効なフラグの組み合わせを指定します。
  • Wnode.GuidメンバーはSystemTraceControlGuidですが、SessionNameパラメーターはKERNEL_LOGGER_NAMEではありませ

私が呼んでいるコードは次のとおりです。

私の呼び出しの言語に依存しないバージョン:

ここで、TraceHandle64ビット整数を指します。

そしてInstanceName、nullで終了するansi文字列へのポインタです。

Properties構造体へのポインタでありEVENT_TRACE_PROPERTIES、完全な16進ダンプを再現することは控えます。

重要な値は2つのオフセットです。

これには、有効なnullで終了するansi文字列も含まれています。

「NTカーネルロガー」:

"C:\ Users \ Ian \ foo.etl":

パラメータが正しくないのはなぜですか?


ボーナスリーディング

アップデート:

セッションパラメータ:

これは次のように分類されます。

アラインメントの問題がある場合、私はそれを単独で発見することはできません。


構造:

一緒に:

0 投票する
2 に答える
1509 参照

delphi - Windows ETW: カーネル コンシューマは EventCallback または BufferCallback イベントを受け取りません

ETW カーネル イベントをリッスンしようとしています。

繰り返しすぐに返され、コールバックが呼び出されないことを除いてProcessTrace-etlファイルが存在し、成長している場合でも。


ロギングをファイル ベースからリアルタイムロギングに変更した場合:

  • ステップ 1 -リアルタイムOpenTraceをサポートするための変更:

    /li>
  • ステップ 2 -リアルタイムStartTraceをサポートするための変更:

    /li>

この場合、返さProcessTrace れることEventCallbackはありませんが、またはBufferCallback呼び出されることはありません。

私は何を間違っていますか?


更新:私のコールバック関数: