【发布时间】:2012-06-25 05:32:48
【问题描述】:
编辑: 必须有某种方法可以解决这个问题,而无需编写全新的调试器。我目前正在研究在现有 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
它非常密集(以及非常过时),但我会尝试花一些时间来理解它。我只是想看看是否有人对如何解决此类问题有任何高级建议,因为我在 eclipse 中开发插件或制作调试器的经验很少。
谢谢!
【问题讨论】:
-
那篇文章是为了增加对新语言的支持。为什么需要修改 Java 类的调试器?您不能使用变量窗口查看当前范围内的对象,然后展开查看内容(如变量列表)吗?
-
你有什么理由不让你的框架 JSR-233 兼容(java 脚本)?
标签: java eclipse debugging eclipse-plugin