[編集: 言い換えてみましょう]o
デバッグで発生するオブジェクトがプロパティa
とb
を持ち、値がnull
とであるとしますHello
。次のデバッグ セッション用に次のコードを自動的に生成することは可能ですか。
if(o.a == null && o.b == "Hello") {
}
プログラミング言語のパーサーなど、複雑なユーザー入力に対処する必要があるプログラムをデバッグする場合、解析プロセスのある時点からデバッグを開始したいことがよくあります。入力コードの特定の行からの命令が処理されたときに開始する簡単な方法を実装しました。
ただし、行には非常に複雑な命令が含まれている場合があり、その結果、コード内で深い再帰が発生するため、デバッグを開始した後、手動でプログラムにさらにステップ インする必要があります。これが function で発生した場合func(obj a)
、通常、次のような醜いコードを記述します。
public void func(obj a) {
if(a instanceof someClass && ((someClass)a).hasSomeProperty() && ((someClass)a).getIdentifier().equals("myID")) {
// set a breakpoint here
}
// other code
}
したがって、基本的には、関数に渡されたオブジェクトを特定することで、興味深い状況を特定しようとします。通常、他のコードでスローされる例外にブレークポイントがあるため、これらの値を知っています。だから私の質問はこれです: 適切なブレークポイントを生成するためにこの醜いコードをすべて書く代わりに、以前のデバッグセッションで変数が持っている値に基づいて条件付きブレークポイントを設定する方法はありますか? 基本的には、オブジェクトがここにあるものとまったく同じ場合、ここで停止しますか?