編集:まったく新しいデバッガーを作成せずにこれにアプローチできる方法がいくつかあるはずです。私は現在、既存の Java デバッガーの上に構築する方法を検討しています。Java デバッガーが既に持っている情報 (スタック フレーム、変数、生データなど) を取得する方法について誰かがアイデアを持っている場合、それは本当に役に立ちます。
--
私がやろうとしているのは、このフレームワーク/API を Java 上に構築しており、フレームワークに合わせてカスタマイズされた Eclipse プラグイン デバッガーを書きたいということです。以下に簡単な例を示します。
スコープと呼ばれるクラスと変数と呼ばれるクラスの 2 つのクラスがあります。スコープは、変数のマップを保持します。コードはすべて 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 でプラグインを開発したり、デバッガーを作成した経験がほとんどないため、この種の問題に対処する方法について高レベルの推奨事項があるかどうかを知りたかっただけです。
ありがとう!