デバッグコンテキスト内でMonoコンパイラをサービスとして使用して(こことここを参照)、デバッガ内で実行時にオブジェクトをクエリ/変更/視覚化などできるかどうか、またどのように使用できるかを知りたいです。現時点では、このSO投稿によると、RoslynCTPはこの機能をサポートしていません。
2 に答える
はい、それは完全に可能です。これを実装する方法の正確な詳細はわかりませんが、v2.8以降(またはそれ以前)に実際にアイデアを実装しているMonoDevelopを見てください。MonoDevelopでは、REPLパッドを使用できます。これにより、ブレークポイントが原因でアプリケーションが停止したのとまったく同じコンテキストでC#コードを入力できます。デバッグビューにMDの簡単なスクリーンショットを添付し、REPLパッドを開きました。MDはオープンソースであるため、MDがどのように実装されたかをソースで確認し、必要な部分を取り除くことができます。
Mono Soft DebuggerはMonoランタイムの一部であり、「Debugger Agent」を使用できるため、実行可能であると思います。
デバッガエージェントは、クライアントプログラムにデバッグサービスを提供するモノラルランタイム内のモジュールです。
したがって、1つの代替手段は、コンパイラーのMono Soft Debuggerをサービスとして(Monoランタイム上で実行される)インターフェースしようとすることです。
Mono SoftDebuggerはMonoDevelopIDEで使用されているため、このIDEを探しているものに使用できるかどうかを調べることもできます。