我目前正在实现一个 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);
}
}
}
基本上,调试器给了我的程序 IStackFrame,它里面有 IVariables,它给出了正在调试的程序中正在发生的事情的模型。据我所知,这些是在被调试程序上运行的真实变量的数据表示。IVariables 的功能有限,因为它们可以做一些基本的事情,例如获取它们所代表的变量的名称并获取类型等。
这可能是不可能的,但是有什么方法可以获取它表示的实际对象的副本,而不是使用 IDebugContextListener 类的 IVariable 数据表示?
我的目的是我想使用对象的内部功能。使用 IVariables,我只能访问对象内变量的属性。