EDIT:一定有某种方法可以解决这个问题,而无需编写全新的调试器。我目前正在研究在现有 java 调试器之上构建的方法。如果有人对如何获取 Java 调试器已有的信息(有关堆栈帧、变量、原始数据等)有任何想法,那将非常有帮助。
--
我想要做的是我有一个基于 Java 构建的框架/API,并且我想编写一个针对我的框架定制的 Eclipse 插件调试器。这是一个简单的例子:
我有两个类,一个称为作用域,一个称为变量。作用域包含变量的映射。代码全部用java编写,但我几乎像使用新语言一样使用这种作用域变量关系,并且想要一个变量调试选项卡,它为我提供当前活动作用域的列表以及当前存储在其中的变量。这是一些代码:
import java.util.Hashtable;
public class Scope {
private Hashtable<String, Variable> variableList = new Hashtable<String, Variable>();
// constructor
public Scope(){
}
public void put(String key, Variable v){
variableList.put(key, v);
}
public Variable get(String key){
return variableList.get(key);
}
}
public class Variable {
private String value;
private String name;
public Variable(String aName, String aValue){
name = aName;
value = aValue;
}
public String getValue(){
return value;
}
public String getName(){
return name;
}
public void setValue(String aValue){
value = aValue;
}
}
这显然是一个非常简单的例子,但我想完成类似的事情,我可以获得一个变量窗口,设置一个断点,并让“调试器”列出我的活动范围对象和内部的变量对象。
我一直在尝试阅读和理解:http://www.eclipse.org/articles/Article-Debugger/how-to.html http://www.eclipse.org/articles/Article-Debugger/how-to.html
而且它相当密集(而且非常过时),但我会尝试花一些时间来理解它。我只是想看看是否有人对如何解决此类问题有任何高级建议,因为我在 Eclipse 中开发插件或制作调试器的经验很少。
Thanks!