私は現在、デバッグの可能性を高める Eclipse プラグインに取り組んでいます。com.sun.jdi.ObjectReference#invokeMethod
デバッグ セッション中に、次のようにしてScala メソッドを呼び出します。
public int callMethod_Reactive_Level(final ObjectReference o) throws InvalidTypeException, ClassNotLoadedException, IncompatibleThreadStateException, InvocationException {
final Method m = apiValues.getMethod_Reactive_level(o); // com.sun.jdi.Method
final IntegerValue intVal = (IntegerValue) o.invokeMethod(thread, m, new LinkedList<Value>(), ObjectReference.INVOKE_SINGLE_THREADED);
return intVal.intValue();
}
それを行った後、 への呼び出しorg.eclipse.debug.core.model.IVariable#getValue
はInvalidStackFrameException
. エラーメッセージ全体は次のとおりです。
Status ERROR: org.scala-ide.sdt.debug code=5010 Exception while retrieving variable's value com.sun.jdi.InvalidStackFrameException
Exception while retrieving variable's value
上記のようにメソッドを呼び出した後、変数ビューで変数を調べると、メッセージが表示されます。
この問題をどのように解決できるか考えていますか? JDIは明示的にそれを行う可能性を提供しているので、なぜこれがそれほど問題になるのかわかりません。
更新: Scala IDE のバグである可能性があるため、 Scala IDE dev groupで問題を再現する方法についてのディスカッションとチュートリアルがあります。