1

Eclipse などでのデバッグ中に、ウォッチ式または条件付きブレークポイントを評価できます。通常、これらはクライアント側で評価されます。たとえば、Eclipse 内からデバッグする場合、これらの式を評価するのはデバッグ ターゲット VM ではなく、Eclipse 自体です。特に条件付きブレークポイントの場合、条件が false と評価された場合でも、ブレークポイントにヒットするたびにデバッグ VM (つまり Eclipse) がアクティブになる必要があるため、これは非常にコストがかかる可能性があります。

私の質問は、式/条件が実際にTRUEと評価された場合にのみターゲットVMがデバッグVMに通知するように、デバッグターゲットVMでそのような式または条件付きブレークポイントを代わりに評価することをデバッグプロトコルが許可するかどうかです。

4

1 に答える 1

0

ホット コード置換を使用してメソッド本体を空の if ブロックの本体に置き換え、そこに (条件付き) ブレークポイントを配置する IDE (ab) を除いて、http://download.oracle.com/javaseには何も見つかりません。 /1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.htmlこれを行うのに役立つかもしれません。

「将来のために」として文書化されており、JDI BreakpointRequest で公開されていない EventRequest.Set にあるexprIdため、これが機能することはないと思います。

ちなみに、評価はターゲット VM 内で行われます (つまり、式で equals() を使用すると、equals() はターゲット VM で実行されます) が、評価はデバッグ VM からトリガーされます。

于 2011-09-01T17:48:35.603 に答える