zl程序教程

您现在的位置是:首页 >  工具

当前栏目

IDEA 教程之基础篇(五):IntelliJ IDEA 断点调试 Debug 详细教程 + 动图演示

IDEA调试教程基础 详细 Intellij 演示 debug
2023-09-11 14:22:52 时间

❤️ 个人主页:水滴技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
🌸 订阅专栏:IntelliJ IDEA 教程:从入门到精通


大家好,我是水滴~~

本篇内容主要讲述如何在 IntelliJ IDEA 进行断点调试,并提供了动图演示,可以直观的看到操作效果。

一、断点的类型

断点是在特定的点,暂停程序执行的特殊标记。使我们可以检查程序的状态和行为。一旦设置,断点将保留在项目中,直到将其删除。

IntelliJ IDEA 中提供多种类型的断点,下面介绍这些断点的概念,以及如何设置断点。

1. 行断点(Line Breakpoints)

在任意可执行的代码行上打的断点称为行断点,当程序运行至该行时,会暂停执行。行断点的图标是红色的圆形,如图:
在这里插入图片描述

在代码行左侧空白处点击左键,这样就会会打一个行断点。然后以 Debug 模式运行,程序会暂停至该断点处,此时就可以观察当前变量的值了。

在这里插入图片描述

2. 方法断点(Method Breakpoints)

在方法上打的断点称为方法断点,当程序进入/退出方法时,会暂停执行。方法断点的图标与行断点不同,是一个红色的菱形,如图:

在这里插入图片描述

在方法左侧空白处点击左键,这样就打了一个方法断点。以 Debug 模式运行,程序会在方法内第一行暂停,继续执行会退出方法执行完毕。

在这里插入图片描述

方法断点默认只监听入方法,想要监听退出方法,需要进一步设置。

右击方法断点的图标,在弹出的对话框中勾选【Method exit】复选框,然后以 Debug 模式运行程序,会发现程序在方法内第一行暂停,继续执行后会在方法结束处暂停。这样就便于观察整个方法的常量变化及返回值。

在这里插入图片描述

方法断点也可以打在接口上,会直接监听到实现方法中。

在这里插入图片描述

3. 属性观察点(Field Watchpoints)

在属性上设置的断点称为属性观察点,当程序读取字段或为字段赋值时,会暂停执行。属性观察点的图标是一个红色的眼睛,如图:

在这里插入图片描述

在属性左侧空白处点击左键,会打一个属性观察点。以 Debug 模式运行程序,程序会在赋值代码行(set)暂停,并且每次赋值都会暂停。

在这里插入图片描述

默认只会在赋值时暂停,若想在读取字段值是暂停,需要进一步设置。

在属性观察点上点击右键,在弹出的对话框中勾选【Field access】复选框,这样就在读取字段值时,也会暂停程序。

在这里插入图片描述

4. 异常断点(Exception Breakpoints)

程序抛出异常时的断点称为异常断点,当程序抛出异常时,会暂停程序。异常断点的图标是红色的闪电,如图:

在这里插入图片描述

先运行一段有异常的程序,在【Console】控制台会输出异常,点击异常右侧【Create breakpoint】可以为该异常创建一个异常断点。
再以 Debug 模式运行程序,会直接暂停到异常断点处。

在这里插入图片描述

还可以主要将异常类型,添加为异常断点。

打开下面的【Debug】面板,点击【View Breakpoints…】红色按钮。在打开的【Breakpoints】对话框中点击【+】,选择【Java Exception Breakpoints】,然后选择一个异常类型,异常添加添加成功。
再以 Debug 模式运行程序,会直接暂停到异常断点处。

在这里插入图片描述

如果想要监听所有异常,就在【Breakpoints】对话框中勾选【Any exception】即可。

在这里插入图片描述

二、断点管理

我们设置的所有断点都可以管理,IntelliJ IDEA 通过【Breakpoints】对话框来管理所有断点。

如下图所示,IntelliJ IDEA 可以将前面章节中所有断点都列了出来。可以通过上面的“+”号添加新的断点;也可以通过“-”号来删除断点;还可以通过断点前的复选框还启用/禁用断点。

在这里插入图片描述

打开该对话框有多种方式,下面列举一下:

  • 通过菜单【Run】—【View Breakpoints…】来打开
  • 通过快捷键打开:Ctrl + Shift + F8
  • 在底部【Debug】面板中,点击【View Breakpoints…】来打开

三、调试面板

通过菜单【View】—【Tool Windows】—【Debug】或快捷键 Alt + 5 可以打开调试面板。

当以 Debug 模式运行程序时,如果程序遇到断点时,会自动打开调试面板。此面板可以控制调试进度、显示和分析程序数据等。

在这里插入图片描述

上图是打开的调试面板,其中:

① ② 用于控制 Debug 的进度。

③ 当前程序运行的,显示内容有:方法名称、行数、类名、包名。

④ 显示当前帧的变量数据。

四、调试进度控制

IntelliJ IDEA 提供了一组控制调试进度的操作,可以根据你的调试策略使用这些操作。例如:你是需要直接转到下一行还是调用当前行的方法。

1. 跨过(Step Over)

跨过当前代码行,直接转至下一行。快捷键:F8

在这里插入图片描述

2. 进入(Step Into)

进入当前代码行的方法。快捷键:F7

在这里插入图片描述

如果有多个方法,会高亮显示这些方法,可点击进入其中一个方法。

在这里插入图片描述

3. 强制进入(Force Step Into)

强制进入方法。即使该方法被常规“进入”跳过。快捷键:Alt + Shift + F7

在这里插入图片描述

4. 跳出(Step Out)

跳出当前方法,并转到方法调用者方法处。快捷键:Shift + F8

在这里插入图片描述

5. 运行至光标处(Run to Cursor)

继续执行,直至光标处。快捷键:Alt + F9

在这里插入图片描述

6. 恢复程序(Resume Program)

继续执行,直至下一断点处。如果没有下一断点,直到程序结束。快捷键:F9

在这里插入图片描述

7. 停止(Stop)

结束调试。程序会执行到最后,并结束运行。快捷键:Ctrl + F2

在这里插入图片描述

在这里插入图片描述