一、认识debug
1.debug启动
toolbar:
启动类:
2.断点
或者
鼠标所在行,ctrl+F8设置断点或取消断点
3.debug窗口:
请求到达第一个断点的时候,会激活debug窗口,可配置;
1.调试按钮:调试的主要功能按钮
2.服务按钮:关闭/启动服务,设置取消断点等
3.方法调用栈:该方法调试所经过的所有方法
4.Variable变量区:可以查看当前断点之前的当前方法的所有变量
5.Watches:查看变量
二、操作按钮&服务按钮
1.操作按钮
使用最多,最核心的一组按钮,从左到右依次说明:
> Show Execution Point(Alt + F10) :调试过程中,如果你的光标在其他行,或者其他页面,点击这个按钮,跳到当前线程执行的行;
>Step Over(F8) :程序逐行执行,如果有方法,不会进入;
>Step Into(F7) :如果当前行有方法,可以进入方法内部,一般是自定义方法,不会进入类库的方法;
>Force Step Into(Alt + Shift + F7) :强制步入,能进入任务方法,包括官方类库;
这里有个智能步入(Shift + F7) :列出所有可进入的方法,选择步入;
>Step Out(Shift + F8) : 跳出当前方法到进入方法处;
> Drop frame : 回退断点
>Run to Cursor(Alt + F9) : 程序运行到光标处;你可以把光标放到方法后面的某一行,然后运行此按钮,代码会运行到光标处,不需要另外打断点;
2.服务按钮
从上到下依次说明:
>Return 'xxx' :重启服务
>Resume Program(F9) :跳过断点,恢复服务;
>Pasue Program
>Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是因为没完全关闭服务的原因,你就需要查杀所有JVM进程了。
>View breakpoint
>Mute Breakpoints:断点失效,颜色变灰;再次点击恢复;
这里应该还有个按钮,On 'Update' actions,程序更新,需要配合热部署工作;
三、日常操作
1、变量查看
> 在IDEA中,参数所在行后面会显示当前变量的值;
>光标悬浮变量上,显示信息;
>在Variables里查看,这里显示当前方法里的所有变量;
>在Watches里,点击New Watch,输入需要查看的变量。或者可以从Variables里拖到Watche里查看;
2、断点条件设置
>在断点上右键直接设置当前断点的条件;
>异常断点,通过设置异常断点,在程序中出现需要拦截的异常时,会自动定位到异常行
3、表达式计算
>Evaluate Expression (Alt + F8) 。可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。
这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值
>可以设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值;