1

Microsoft の DbgEng を使用して、スタンドアロンのデバッガー アプリを作成します。コマンドを追加の IDebugControl インスタンスに送信する 2 番目のスレッドを開き、この IDebugControl Execute メソッド呼び出しの特定の出力を取得したい (そして tcp 接続を介して送信したい)。

メインスレッドからの IDebugControl もコマンドを Execute() に送信し、出力が混在する可能性があるため、問題があります。"g" (go) などのコマンドを実行すると、WaitForEvent() が呼び出され、イベントが発生するまでターゲットに関する詳細情報を取得できないため、2 つ目のスレッドが必要です。

そのための解決策が必要です。

2 番目の IDebugControl は、逆アセンブル行、メモリ ダンプなど、データのみの要求を送信する操作に使用されます。他のコールバックをそれに置くことができます。

私のための解決策はありますか?

4

1 に答える 1

2

IDebugControl::SetInterrupt 以外のイベントを待機している間は、エンジンをデバッグするコマンドを呼び出さないでください。

とにかく 2 つのスレッドを使用する場合は、IDebugOutputCallbacks コールバック インターフェイスを登録し、任意の種類のミューテックスで出力を処理できます。

于 2014-08-26T07:07:22.067 に答える