赞
踩
目录
走到下一处断点,如果没有没有下一处断电就直接运行完整个debug流程
强制停止当前debug ,相当于直接关闭JVM的意思,不会再执行后面的代码了
进入方法内部
走到下一行代码(就是直接一行一行的走,不会进入方法内部)
跳出当前方法,如果当前走到了方法内部,就直接执行完当前方法后调回到调用处
我现在debug一遍spring的源码,先在要debug的代码旁双击打一个断电,然后以debug形式启动,右上角的昆虫图标
这时候我希望进入这个构造方法,看下他的构造器做了什么事情,我就点击这个按钮 (F5) 进入方法内
这时候我发现他跳到了ClassLoader类,ClassLoader是jdk的类加载器负责将.class加载到JVM里,这样我们就可以运行java类了,所以就说明他把上图中的ClassPathXmlApplicationContext类加载到了JVM,知道这个意思就可以了,我们可以直接点击
(F7)跳出当前方法
然后发现他就会调回到调用处,类加载已完成,这时候我们在进入一次(F5) 进入方法内部
这时候就进入真正的方法里,鼠标放上去, 可以看见上图传入的参数
然后发现这个构造器又调用了另一个构造器,再继续按(F5) 进入方法内部
发现他又跳到了ClassLoader类,这个方法就是进行一些安全检查,我们直接按(F7)跳出当前方法,回到调用处再按(F5) 进入方法内部 就进入到真正的调用的代码
在这里按 (F6)下一步 就会走到setConfigLocations里,不会进入super()
这个时候我已经知道要调用refresh方法(refresh == true), 我就先进入这个方法,在这里打一个断点
然后回到这个方法,按(F8) 走到下一个断点
就会直接跳到这个方法,后面不演示了直接结束
这里每一行代表的方法调用的行数
比如我点击第一行,就代表当前debug到哪的地方
点击第二行代表 调用第一行的地方,以此类推
这个窗口存储了当前debug行的所有变量的值
this就代表当前对象
configurationLocation点开就可以看到他的属性
当前窗口存储了所有打过的断点,双击就可以到这个断点的位置,点击上面的可以移除所有断点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。