官术网_书友最值得收藏!

Time for action – breaking at method entry and exit

Method breakpoints allow the user to see when a method is entered or exited.

  1. Open the SampleHandler class, and go to the execute method.
  2. Double-click in the vertical ruler at the method signature, or select Toggle Method Breakpoint from the method in one of the Outline, Package Explorer or Members views.
  3. The breakpoint should be shown on the line:
    public Object execute(...) throws ExecutionException {
    
  4. Open the breakpoint properties by right-clicking on the breakpoint or via the Breakpoints view, which is shown in the Debug perspective. Set the breakpoint to trigger at method entry and method exit.
  5. Click on the hello world icon again.
  6. When the debugger stops at method entry, click on resume Time for action – breaking at method entry and exit.
  7. When the debugger stops at method exit, click on resume Time for action – breaking at method entry and exit.

What just happened?

The breakpoint triggers at the time the method enters and subsequently when the method's return is reached. Note that the exit is only triggered if the method returns normally; if an uncaught exception is raised, it is not treated as a normal method exit, and so the breakpoint won't fire.

Other than the breakpoint type, there's no significant difference between creating a breakpoint on method entry and creating one on the first statement of the method. Both give the ability to inspect the parameters and do further debugging before any statements in the method itself are called.

The method exit breakpoint will only trigger once the return statement is about to leave the method. Thus any expression in the method's return value will have been evaluated prior to the exit breakpoint firing. Compare and contrast this with the line breakpoint, which will wait to evaluate the argument of the return statement.

Note that Eclipse's Step Return has the same effect; this will run until the method's return statement is about to be executed. However, to find when a method returns, using a method exit breakpoint is far faster than stopping at a specific line and then doing Step Return.

Using conditional breakpoints

Breakpoints are useful since they can be invoked on every occasion when a line of code is triggered. However, they sometimes need to break for specific actions only—such as when a particular option is set, or when a value has been incorrectly initialized. Fortunately, this can be done with conditional breakpoints.

主站蜘蛛池模板: 昌乐县| 嘉善县| 黄浦区| 寻甸| 洛川县| 景洪市| 金溪县| 大兴区| 读书| 金沙县| 松潘县| 利辛县| 木里| 武陟县| 贡觉县| 方正县| 清涧县| 高邮市| 海口市| 晋城| 大邑县| 武邑县| 策勒县| 东平县| 尼玛县| 黄骅市| 平武县| 昌都县| 蒙自县| 米易县| 嘉黎县| 富民县| 两当县| 武定县| 桂阳县| 门源| 浮山县| 濉溪县| 南丹县| 大渡口区| 龙里县|