目录
前置说明:
IDEA 中文插件
Debug入门
开启debug
常规调试
快捷键说明
表达式计算
表达式变量查看
表达式变量变更
断点进入条件
特定值进入
异常出现进入
多线程断点
查看所有线程
显示线程详细信息
案例
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码
前置说明:
博主使用的IDEA 版本:2022.3.3
各个IDEA版本可能在文章中截图显示UI有略微差异
IDEA 中文插件
Debug入门
开启debug
- 在设置里勾选Show debug window on breakpoint,则请求进入到断点后自动激活Debug窗口
- 如果你的IDEA底部没有显示工具栏或状态栏,可以在View里打开,显示出工具栏会方便我们使用。
- 在菜单栏Run里有调试对应的功能,同时可以查看对应的快捷键
常规调试
- 以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。
- 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。
- Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可以去设置里设置。
- 调试按钮:一共有4个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能。
服务按钮:可以在这里关闭/启动服务,设置断点等。
- 方法调用栈:这里显示了该线程调试所经过的所有方法,点击右上角过滤按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。
- Variables:在变量区可以查看当前断点之前的当前方法内的变量。
- Watches:查看变量,可以将Variables区中的变量拖到Watches中查看
快捷键说明
Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
Step Into (F7):步入,如果当前行有方法,可以进入方法内部
Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处
Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
表达式计算
表达式变量查看
可以使用这个操作在调试过程中计算某个表达式的值,而不用再去打印信息。你可以选中某个表达式再Alt + F8,弹出计算表达式的窗口,如下,回车或点击Evaluate计算表达式的值。
这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值
表达式变量变更
设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况
断点进入条件
特定值进入
通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。
通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次
异常出现进入
多线程断点
查看所有线程
显示线程详细信息
右击线程,点击线程试图
案例
线程DEMO
public class MMM implements Runnable{
public static void main(String[] args){
Thread t1=new Thread(new MMM());
t1.start();
Thread t2=new Thread(new MMM());
t2.start();
Thread t3=new Thread(new MMM());
t3.start();
System.out.println("1");
}
@Override
public void run() {
System.out.println("1");
}
}
开启断点
设置线程断点模式
按需调试指定线程
想调试哪个选中哪个继续执行即可