目录

前置说明:

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");

}

}

开启断点

设置线程断点模式

按需调试指定线程

想调试哪个选中哪个继续执行即可