问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IDEA断点调试功能详解

创作时间:
作者:
@小白创作中心

IDEA断点调试功能详解

引用
CSDN
1.
https://blog.csdn.net/buyaotutou/article/details/140478042

在软件开发过程中,调试是不可或缺的一环。本文将详细介绍如何使用 IntelliJ IDEA 进行断点调试,包括各种类型的断点设置、调试步骤和技巧,帮助开发者更高效地定位和解决问题。

一、为什么需要Debug

编好的程序在执行过程中如果出现错误,该如何查找或定位错误呢?简单的代码直接就可以看出来,但如果代码比较复杂,就需要借助程序调试来查找错误了。

运行编写好的程序时,可能出现的几种情况:

  • 情况1:没有任何bug,程序执行正确!
  • 情况2:运行以后,出现了错误或异常信息。但是通过日志文件或控制台,显示了异常信息的位置。
  • 情况3:运行以后,得到了结果,但是结果不是我们想要的。
  • 情况4:运行以后,得到了结果,结果大概率是我们想要的。但是多次运行的话,可能会出现不是我们想要的情况。比如:多线程情况下,处理线程安全问题。

二、Debug的步骤

Debug(调试)程序步骤如下:

  1. 添加断点
  2. 启动调试
  3. 单步执行
  4. 观察变量和执行流程,找到并解决问题

1、添加断点

在源代码文件中,在想要设置断点的代码行的前面的标记行处,单击鼠标左键就可以设置断点,在相同位置再次单击即可取消断点。

2、启动调试

IDEA提供多种方式来启动程序(Launch)的调试,分别是通过菜单(Run –> Debug)、图标(“绿色臭虫”)等等。

3、单步调试工具介绍

  1. 调试器:在此界面可查看关于调式获得到的信息,如变量、方法返回值等
  2. 控制台:点击控制台后可以跟我们正常运行代码一样,在控制台中输入数据和查看输出情况
  3. 重启:重新调试
  4. 停止:停止当前调试
  5. Resume Program:快捷键为F8,跳到一下个断点处
  6. Step Over:快捷键为F6。步过,一行一行地往下走,如果这一行上有方法,直接执行完该方法的内容,不会进入方法里面。
  7. Step Into:快捷键为F5。步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
  8. Step Out:快捷键为F7。步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
  9. Force Step Into:快捷键为Alt + Shift + F7。强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
  10. Run to Cursor:Ctrl+R。运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
  11. Show Execution Point:快捷键为Alt + F10。如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前Debug代码执行的行。
  12. Variable窗口:如下图中的红框,这里显示当前方法里的所有变量。

  1. View Breakpoints(Ctrl + Shift + F8):查看所有断点
  2. Mute Breakpoints:使得当前代码后面所有的断点失效, 一下执行到底

说明:在Debug过程中,可以动态的下断点。

三、多种Debug情况介绍

1、 行断点

断点打在代码所在的行上。执行到此行时,会停下来。

2、方法断点

断点设置在方法的签名上,默认当进入时,断点可以被唤醒。也可以设置在方法退出时,断点也被唤醒。如下图所示。

在多态的场景下,在父类或接口的方法上打断点,会自动调入到子类或实现类的方法

3、字段断点

在类的属性声明上打断点,默认对属性的修改操作进行监控。

.4、条件断点

如下图所示,在满足arr[i] % 3 == 0的条件下,执行断点。

5、异常断点

通过下图的方式,对指定的异常进行监控:

6、线程调试

7、强制结束

如上图所示,比如我们进入到一个方法,是用来插入数据到数据库中,一共四行代码,但是到了第二行就已经错误了,我们不想让他继续错下去了,但是还想让这个方法之后的代码稍后继续运行,那我们就让目前的方法强制结束(返回)。

四、自定义调试数据视图

五、常见问题

问题:使用Step Into时,会出现无法进入源码的情况。如何解决?

方案1:使用 force step into 即可

方案2:点击Setting -> Build,Execution,Deployment -> Debugger -> Stepping把Do not step into the classess中的java.* 、javax.* 取消勾选即可。如下图所示。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号