2016-12-21 5 views
0

サードパーティのデバッグビューア(DbgView)が実行されているかどうかを監視するコードを記述しています。私はDebugger.IsAttachedで簡単に完全なデバッガを処理できますが、DbgViewを追跡するには、いくつかのイベントを監視する必要があります。私はここで、この記事で私のコードを基づかています:イベント(Win32イベント)がリセットされるのを待つことができますか?

http://unixwiz.net/techtips/outputdebugstring.htmlだから、今、私が持っている:

  IntPtr h1 = CreateEvent(IntPtr.Zero, false, false, "DBWIN_BUFFER_READY"); 
      WaitForSingleObject(h1, 0xFFFFFFFF); 
      //bool b2 = h1 != IntPtr.Zero; 
      CloseHandle(h1); 

は素晴らしい作品。 DbgViewが開始してキャプチャを開始するまで、コードはブロックされます。まさに私が欲しいもの。今問題は、キャプチャがいつ止まるのかわかりません。

イベントがリセットまたはリリースされたとき、またはDbgViewが何をしているときにチェックする方法はありますか?ループ内でイベントをポーリングするのが好ましい。

+0

あなたは本当にどのような問題を解決しようとしていますか?リスナーが聞き始めたとき、何をする予定ですか?リスナーが聞き取りをやめるのを知ることはなぜ重要ですか? – IInspectable

+0

@IInspectable、はい、正確です。リスナーがいつ始まり、いつリスナーが止まるかを知りたい。 Debugger.IsAttachedはデバッガを処理しますが、DbgViewのようなリスナは異なる方法で動作し、IsAttachedフラグをトリガしません。最終的なゲームは、高価になる可能性があるため、誰かが聞いているときにのみ診断情報を生成することです。私はこの動作を自動化したい。上記のコードは、誰かが聞いているが、いつ停止するかを知ることを試みている軽い指標です。 – SledgeHammer

+0

[イベントトレース](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968803.aspx)の適用性を評価しましたか?これは、あなたが解決しようとしている試行錯誤の中で、OS全体で使用されている問題に対する強力な解決策です。 – IInspectable

答えて

1

イベントリセット時に確認する方法はありますか?

いいえありません。イベントは設定されるのを待つことができますが、リセットすることはできません。あなたは待つことができる別のイベントが必要になります。

リンク先の記事を読んでいると、そのプロトコルにはキャプチャの終了を検出する方法が示唆されていません。

あなたが待っているイベントは、使用目的に使用するようには設計されていません。このイベントとその友人DBWIN_DATA_READYは、デバッガによってOutputDebugStringと通信するために使用されます。

結果として、OutputDebugStringをキャプチャするデバッガはこれらのイベントを作成します。だからあなたの現在のアプローチは、DbgViewだけでなく、デバッガを見つけることができます。

あなたは既存のコードが私には疑わしいです。イベントが存在しない場合は、コードによってイベントが作成されます。あなたはそれが起こることがないことを通知されるのを待つでしょう。デバッガをアクティブにして実行するだけなので、この問題に遭遇したことはないでしょう。 INFINITEの代わりにマジック定数を使用すると、エラーチェックをまったく実行しません。

+0

投稿したコードスニペットは、明らかにプロダクションコードではなくPOCです。また、Visual Studioではそれらを作成しません。私の記事で述べたように、デバッガはDbgViewのようなデバッグビューアとは別の方法で動作します。 Debugger.IsAttachedはデバッガをキャプチャしますが、DbgViewはキャプチャしません。 – SledgeHammer

+0

デバッガがOutputDebugStringをキャプチャしたい場合は、それを行う方法です。だからあなたは他のデバッガーと同じように手に入れることができます。いずれもシンプルな主な推力を損なうものではありません。イベントがリセットされるのを待つことはできません。それはあなたが正しいことを尋ねたものです。 –

関連する問題