Can't breakpoint the last statement of a code block in Eclipse

前端 未结 4 1726
甜味超标
甜味超标 2020-12-16 17:05
if (true) {
    String a = \"foo\";
    String b = \"bar\";
}

If I set a breakpoint at String a = \"foo\"; eclipse will stop, and I ca

4条回答
  •  眼角桃花
    2020-12-16 18:02

    To set a breakpoint at the end of an arbitrary block is not possible (without byte-code hacking).

    If it is a method body, then it is possible: you can set a Method breakpoint. Do this by double-clicking on the method definition line:

    sample code with simple method breakpoint

    (notice the little arrow?) and then in the breakpoints view, select the breakpoint to see both an Entry and an Exit option tick-box in the displayed properties:

    modifying the breakpoint

    The little arrow indicates that, by default, we have set a breakpoint on entry to the method.

    Now select Exit (and deselect Entry) and you will see this in the breakpoints view:

    exit breakpoint in breakpoints view

    (There is a different little arrow, indicating an exit breakpoint.)

    Now run the debugger on this little breaker ('Debug As a Java Application') and it will stop on the exit brace of the method:

    debugger stopped

    and the local variables (only a in this case) are now visible (with the correct values) in the Variables view:

    variables just before exit

    It is worth noticing that this type of breakpoint traps method exit however this happens -- even, for example, if we exit by throwing an exception.

提交回复
热议问题