VBScript ホスト用のデバッガーを作成しています。私のデバッガは外部アプリケーションです。すべて順調。IApplicationDebugger::onHandleBreakPoint ハンドラーへの呼び出しを受け取ります。IDebugApplication::ResumeFromBreakPoint を呼び出すことができ、コードをステップ実行できます。
また、スクリプトを実行する前にブレークポイントを設定することもできます。再び IApplicationDebugger::onHandleBreakPoint が呼び出されます。エラーも処理されます。しかし、IApplicationDebugger::onHandleBreakPoint で中断している間に、新しいブレークポイントを設定したいと考えています。
IActiveScriptDebug へのマーシャリングされたポインターがあります。しかし、IActiveScriptDebug::EnumCodeContextsOfPosition を呼び出すと、アプリケーションがブロックされます。これは私にとって論理的な縫い目です。IActiveScript (IActiveScriptDebug) オブジェクトを含むスレッドは別の STA に存在し、記載されているようにデバッガーでブロックされたままです。
しかし、デバッガ スレッドから言語エンジンにアクセスする正しい方法は何ですか。必要なのは、特定のコード行の IDebugCodeContext または IEnumDebugCodeContexts インターフェイスだけです。同じ機能を実現するためにアクセスできる別のインターフェイスがありませんか。