問題タブ [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.
asp.net - ASP.NET / IIS ContextId にアクセスする方法
特定の ASP.NET 要求に対して、この "ContextId" がイベント ログに記録されるのを何度も見てきました。私は最近、ASP.NET によってプッシュされる ETW イベントの調査を開始しました。この ContextID を、起動する自分のイベントで再利用したいと考えています。
これどうやってするの?
System.Threading.Thread.CurrentContext にはないようです。常に 0 です。
workflow-foundation - WF に ETWTrackingParticipant を使用している場合、Win2k3 の「アプリケーションとサービス ログ」はどこにありますか?
Win2k3 サーバーでホストされている WF 4 で使用する場合、ETW ( Event Tracing for Windows ) データをどのように表示しますか? ETWTrackingParticipant
Windows 7 または Server 2k8 の場合は、Event Viewer->Application and Services Logs->Microsoft->Windows->Application-Server Applications->Analytic の下にあります。Windows 2003 Server で実行されているこの追跡データを確認する方法はありますか?
etw - イベント ビューアーで名前ではなく番号として表示されるカスタム ETW イベントのタスク カテゴリ
ETW を使用してアプリケーションにログを実装しています。
- ecmangen.exe を使用して、一連のカスタム イベント、テンプレート、タスク、およびキーワードを含むマニフェストを作成しました。
- mc.exe を使用して、コードで使用する対応する C# クラスをコンパイルおよび生成しました。
- この生成されたクラスをコードで使用して、イベントを発行しました。
- wevtutil を介してマニフェストをインポートし、イベント トレース セッション (Win2K8R2 - パフォーマンス - データ コレクター セット) を介してイベントをキャプチャしました。
生成されたトレース ファイルをイベント ビューアで開くと、予期していたイベントが表示されます。しかし、カスタム タスク カテゴリとキーワードが、名前ではなく数値形式で表示されていることがわかりました。
これらの値を変換する必要がありますか? それとも、これについて間違った方法で行っていますか?
.net - .NET トレース: "デフォルト" リスナーとは?
.NET ユーザーのトレースのすべての例では、" Default
" リスナーを削除します。
デフォルトのリスナーとは何ですか? また、デフォルトで存在するのはなぜですか?
Microsoftの担当者が、さまざまなリスナーでオーバーヘッドのベンチマークを行いました。
トレース リスナとは何Default
ですか?なぜそんなに遅いのですか? ですかOutputDebugString
?ファイルへの書き込みよりも2 桁OutputDebugString
遅いですか?
TraceListener
を使用するだけの .NET はありますOutputDebugString
か?
デフォルトのトレース リスナとは何ですか?なぜそんなに遅いのですか?なぜ慣習的に削除されるのですか?それが非常に悪い場合、なぜそれがデフォルトなのですか?
windows - Windows Resource MonitorはどのAPIを使用しますか?
Windows Resource Monitorは、(とりわけ)ディスク上のどのファイルがどのプロセスによって現在アクセスされているかを表示します。そして、それはリアルタイムで行われます。どのように?
おそらくETWを使用しており、xperfなどのツールを使用してトレースを生成できることを知っています。しかし、トレースファイルを開始、停止、解析せずにリアルタイムの情報を取得するにはどうすればよいでしょうか。
プログラムで、つまりC#またはC++からデータにアクセスする必要があります。
c++ - スタック ウォーキング パフォーマンスの最適化
現在、dbghelpライブラリを使用して、( GetThreadContext()およびStackWalk64( )を使用して) プロセスのスレッドのスタックをウォークスルーし、各フレームに含まれる戻りアドレスのみを収集します。
ただし、そのオーバーヘッドはシステムの要求に対して大きすぎます。全体の時間は apx です。スタック ウォークごとに 5 ミリ秒 (10 ~ 15 フレーム)。この時間には、GetThreadContext() と、StackWalk64() を呼び出してすべてのフレームを取得するループが含まれます。
とにかく、もっと速くする方法を見つけなければなりません。誰でもどうすればそれができるか考えていますか?
編集:
ETW (Event Tracing for Windows) メカニズムを知っている人はいますか?
その場合、特定の期間に発生したすべてのコンテキスト スイッチを追跡するにはどうすればよいですか? 各コンテキスト スイッチでイベントを発行するイベント プロバイダーはありますか?
c# - TaskSchedulerイベントログからTaskNameを取得します
イベントビューアの[詳細]タブにある情報にアクセスしようとしています。
TaskSchedulerイベントは、System.Diagnostics.EventLogではなく、System.Diagnostics.Eventingを介して利用できることに気付きました。
これまでのところ私はこれを持っています:
しかし、返されたオブジェクトのどこにもEventDataが見つかりません。
この情報(GUIDは削除されています)、具体的には「EventData->TaskName」を見つけようとしています。
c - ETW がいつイベントをドロップしたかを検出する
ETW セッションがイベントをドロップしているかどうかを確認するにはどうすればよいですか?
イベントがドロップされている場合、イベントがドロップされないようにトレース セッションを構成するにはどうすればよいですか?
いくつかのデバッグ作業を支援するカスタム ETW プロバイダーを作成しました。現在、logman.exe を使用してトレース データをキャプチャしています。
結果を表示すると、一部のイベントがドロップされているように見えます。基本的に私は次のようなものを探しています:
イベント A イベント C
これらは介在するイベント B である必要がありますが、トレース ファイルには表示されません。それが起こることは不可能であるべきです.ETWがイベントを落としていると私は信じています.
もちろん、発生している問題がイベントのドロップによるものであり、コードのバグによるものではないことを確認したいと思います。Google を試してみましたが、何も思いつきませんでした。イベントがドロップされているかどうかを確認する方法を知っている人はいますか?
delphi - Windows ETW:StartTraceがエラー87(ERROR_INVALID_PARAMETER)で失敗する
私はWindowsStartTrace
関数のイベントトレースを呼び出しています:
エラーコード87(ERROR_INVALID_PARAMETER
)で失敗しています。MSDNには、このエラーの一般的な原因がいくつか示されています。
- プロパティはNULLです。
- SessionHandleはNULLです。
- プロパティのLogFileNameOffsetメンバーが無効です。
- プロパティのLoggerNameOffsetメンバーが無効です。
- プロパティのLogFileModeメンバーは、無効なフラグの組み合わせを指定します。
- Wnode.GuidメンバーはSystemTraceControlGuidですが、SessionNameパラメーターはKERNEL_LOGGER_NAMEではありません。
私が呼んでいるコードは次のとおりです。
私の呼び出しの言語に依存しないバージョン:
ここで、TraceHandle
64ビット整数を指します。
そしてInstanceName
、nullで終了するansi文字列へのポインタです。
Properties
構造体へのポインタでありEVENT_TRACE_PROPERTIES
、完全な16進ダンプを再現することは控えます。
重要な値は2つのオフセットです。
これには、有効なnullで終了するansi文字列も含まれています。
「NTカーネルロガー」:
"C:\ Users \ Ian \ foo.etl":
パラメータが正しくないのはなぜですか?
ボーナスリーディング
アップデート:
セッションパラメータ:
これは次のように分類されます。
アラインメントの問題がある場合、私はそれを単独で発見することはできません。
構造:
一緒に:
delphi - Windows ETW: カーネル コンシューマは EventCallback または BufferCallback イベントを受け取りません
ETW カーネル イベントをリッスンしようとしています。
ステップ 1: の呼び出し中に呼び出されるおよびオプションの関数を
/li>OpenTrace
指定して、 を呼び出します。EventCallback
BufferCallback
ProcessTrace
ステップ 2:カーネル イベントを有効にします。これは、 を呼び出すことによって行われ
StartTrace
ます。私の場合、カーネル割り込み(EVENT_TRACE_FLAG_INTERRUPT
) と遅延プロシージャ呼び出し(EVENT_TRACE_FLAG_DPC
) をトレースしたい:そして、ログが正常に開始されます (
foo.etl
5 MB の循環制限まで成長し始めることがわかります)。ステップ 3: を呼び出します。これは、保留中のすべてのイベントをステップ 1 で指定したハンドラー
/li>ProcessTrace
に配信するまでブロックします。EventCallback
繰り返しすぐに返され、コールバックが呼び出されないことを除いてProcessTrace
-etlファイルが存在し、成長している場合でも。
ロギングをファイル ベースからリアルタイムロギングに変更した場合:
ステップ 1 -リアルタイム
/li>OpenTrace
をサポートするための変更:ステップ 2 -リアルタイム
/li>StartTrace
をサポートするための変更:
この場合、返さProcessTrace
れることEventCallback
はありませんが、またはBufferCallback
呼び出されることはありません。
私は何を間違っていますか?
更新:私のコールバック関数: