0

Debugger Engine APIを利用する小さなツールを作成しようとしていますが、成功は非常に限られています。

IDebugClientおよびIDebugControlインスタンスを取得でき、そこから既に実行中のユーザー プロセスにアタッチできます。次に、メイン ループに入り、WaitForEventOutputStackTraceSetExecutionStatus ( DEBUG_STATUS_GO) を呼び出して繰り返します。本質的に、これは非常に大雑把なサンプリング ベースのプロファイラーになります。

これまでのところ良い..

私のループは 1 回の完全な繰り返しで実行され、スタック トレースが表示され、ターゲット プロセスが実行状態に戻ることがわかります。

私が抱えている問題は、2回目の繰り返しでへの呼び出しがWaitForEvent返されるE_HANDLEことです(「ハンドルが無効です」)。このエラーが返される理由がドキュメントに表示されません。なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

0

問題は、SDK の古いバージョンに対してコンパイル、リンク、および実行していたことであることが判明しました。SDK を最新バージョン (オンライン ドキュメントで参照されているバージョンであると思われます) にアップグレードしたので、少なくともドキュメントと一致する動作が得られます。

まだ問題がありますが、この問題はなくなりました。

于 2008-12-20T23:44:51.800 に答える