1、基本用法
1)Show Execution Point(+F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。 2)Step Over(F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。 3)Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。 4) Force Step Into (+ + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。 5) Step Out (+ F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。 6) Drop Frame (默认无):回退断点,回退到上一次的debug点。 7) Run to Cursor (+ F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。 8) Evaluate Expression ( + F8):计算表达式,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况了。后面章节详细说明。
2、左侧工具栏
1)Rerun 'xxxx'(^+F5):重新运行程序,会关闭服务后重新启动程序。
3、智能步入
在菜单Run-Smart Step Into中可以选择一行代码中某个方法进入,断点代码行中的方法较多时,可以选择其中一个方法步入。
4、断点条件设置
通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。
1)方法如上图 ,当队列中取出的对象的Id值等于1的时候则在此断点处停。
2)方法如下图,在展示所有断点的地方设置:log:则会将当前断点行输出到控制台;Evaluate and log:可以在执行这行代码时计算表达式的值,并将结果输出到控制台。
3)设置异常断点,添加一个异常断点,断点会自动定位到出现异常的代码行。
多线程调试
先设置断点为线程级别的,这样每个线程都会在断点处停止,可以选择其中一个线程往下执行
选择某个线程去执行,
回退断点、中断debug,强制方法返回某个值,详细摘自:
https://www.cnblogs.com/chiangchou/archive/2017/09/05/idea-debug.html