現在、IDebugContextListener クラス (Eclipse 開発者ツール API/ライブラリの一部) を実装して、デバッガーでイベントの変更をリッスンしています。これを実現する方法は次のとおりです。
private void contextActivated(ISelection context) {
if (context instanceof StructuredSelection) {
Object data = ((StructuredSelection) context).getFirstElement();
if (data instanceof IStackFrame) {
reciever.setStackFrame((IStackFrame) data);
} else {
reciever.setStackFrame(null);
}
}
}
基本的に、デバッガーは、デバッグ中のプログラムで何が起こっているかのモデルを提供する、IVariables を内部に持つ私のプログラム IStackFrame を提供しています。私が知る限り、これらはデバッグ中のプログラムで実行されている真の変数のデータ表現です。IVariable は、表す変数の名前の取得や型の取得などの基本的なことを実行できるため、機能が制限されています。
これは不可能かもしれませんが、IDebugContextListener クラスを使用して IVariable データ表現ではなく、それが表す実際のオブジェクトのコピーを取得する方法はありますか?
私の目的は、オブジェクトの内部関数を使用することです。IVariables を使用すると、オブジェクト内の変数のプロパティにしかアクセスできません。