Eclipse如何debug

目录

1. Eclipse的debug按钮

2. 练习

3.debug视图

        3.1 Debug窗口

        3.2 Variables窗口

        3.3 Breakpoints 窗口


 

1. 首先介绍下Eclipse的几个debug按钮

Eclipse如何debug_第1张图片

 

  走到下一处断点,如果没有没有下一处断电就直接运行完整个debug流程

     强制停止当前debug ,相当于直接关闭JVM的意思,不会再执行后面的代码了

   进入方法内部

   走到下一行代码(就是直接一行一行的走,不会进入方法内部)

   跳出当前方法,如果当前走到了方法内部,就直接执行完当前方法后调回到调用处

 

2. 练习

我现在debug一遍spring的源码,先在要debug的代码旁双击打一个断电,然后以debug形式启动,右上角的昆虫图标

Eclipse如何debug_第2张图片

这时候我希望进入这个构造方法,看下他的构造器做了什么事情,我就点击这个按钮  (F5) 进入方法内

Eclipse如何debug_第3张图片

这时候我发现他跳到了ClassLoader类,ClassLoader是jdk的类加载器负责将.class加载到JVM里,这样我们就可以运行java类了,所以就说明他把上图中的ClassPathXmlApplicationContext类加载到了JVM,知道这个意思就可以了,我们可以直接点击

(F7)跳出当前方法

Eclipse如何debug_第4张图片

然后发现他就会调回到调用处,类加载已完成,这时候我们在进入一次(F5) 进入方法内部

Eclipse如何debug_第5张图片

这时候就进入真正的方法里,鼠标放上去, 可以看见上图传入的参数

然后发现这个构造器又调用了另一个构造器,再继续按(F5) 进入方法内部

Eclipse如何debug_第6张图片

发现他又跳到了ClassLoader类,这个方法就是进行一些安全检查,我们直接按(F7)跳出当前方法回到调用处再按(F5) 进入方法内部 就进入到真正的调用的代码

Eclipse如何debug_第7张图片

在这里按 (F6)下一步 就会走到setConfigLocations里,不会进入super()

Eclipse如何debug_第8张图片

这个时候我已经知道要调用refresh方法(refresh == true), 我就先进入这个方法,在这里打一个断点

Eclipse如何debug_第9张图片

然后回到这个方法,按(F8) 走到下一个断点

Eclipse如何debug_第10张图片

就会直接跳到这个方法,后面不演示了直接结束

Eclipse如何debug_第11张图片

 

3.debug视图

Eclipse如何debug_第12张图片

 

3.1 Debug窗口

Eclipse如何debug_第13张图片

这里每一行代表的方法调用的行数

Eclipse如何debug_第14张图片

比如我点击第一行,就代表当前debug到哪的地方

Eclipse如何debug_第15张图片

点击第二行代表  调用第一行的地方,以此类推

 

3.2 Variables窗口

Eclipse如何debug_第16张图片

这个窗口存储了当前debug行的所有变量的值

this就代表当前对象

configurationLocation点开就可以看到他的属性Eclipse如何debug_第17张图片

 

3.3 Breakpoints 窗口

Eclipse如何debug_第18张图片

当前窗口存储了所有打过的断点,双击就可以到这个断点的位置,点击上面的可以移除所有断点

你可能感兴趣的:(Java)