• IDEA调试总结


    前言


    由于 IDEA 每个人使用的版本不同以及快捷键的设置不同,所以忽略了快捷键的使用。如果不知道快捷键请在 IDEA 工具栏里面点开 Run 菜单即可知悉

    图标介绍

    下面咱们进入看图说话环节,下列图标小伙伴知道是啥功能么?日常开发进行 Debug 使用到哪一些呢?可能也就那一半左右吧!

    1 Show Execution Point: ALT+F10

    显示当前执行点,可以清晰地从图标中看出意思,红色的箭头上面执行完了,箭头下面的是将要执行的内容。那么这个有啥功能呢?从下面的动图可以看到当停留在断点的时候切换到 System 类里面,通过点击此图标即可回到当前断点停留的地方(如果记住快捷键了连鼠标都不用点了)。你是不是还在通过点击 Debugger 下的 Frames 里面的断点调用链来回到当前断点停留的地方呢?赶快使用 Show Execution Point 功能吧!

    2 Step Over:F8

    单步执行,如果有方法则不进入方法(除非方法里面有断点)

    3 Step Into   F7

    单步执行,如果有方法则进入方法(请检查你的 IDEA Debugger 里面的设置,一些包里面的方法使用 Step Into 也进不去,可以把下面的 Do not step into the classes 勾取消即可)


    4 Force Step Into    ALT+SHIFT+F7

    基本与 Step Into 功能相同,不同点就是可以强制进入那些 JDK 源码里面。不需要如上面的 Do not step into the classes 设置。

     5 Step Out: SHIFT+F7

    跳出当前所在的方法,返回调用此方法的地方。

    6 Run to Cursor: ALT+F9

    执行到光标所在位置,可以跳过中间需要执行的代码。

    7 Drop Frame:

    丢弃当前方法,回退上一个方法。如果是 main 方法则不会激活此图标。学”废“了这个妈妈再也不用担心我一不小心错过了断点,还需要重新来啦。

    8 Trace Current Stream Chain:

    对当前 Stream 进行链路追踪,喜欢用 JDK 8 新特性 Stream 来编程的小伙伴可以使用这个功能,谁用谁知道!

    9 Evaluate Expression: (ALT+F8)

    表达式计算,Debug 功能里面最牛逼的功能,不接受反驳!一切皆可使用这个功能。

    断点的分类

    在Java开发中,使用IntelliJ IDEA进行调试时,可以使用多种类型的断点来帮助开发者进行调试。以下是其中一些常用的断点类型:

    1. 行断点(Line Breakpoint)

    在代码的某一行设置断点,当程序执行到该行时会触发断点暂停程序。

    2. 条件断点(Conditional Breakpoint)

    在特定条件下触发断点的暂停,开发者可以指定一个条件,当满足条件时程序会在该断点暂停。

    比如上面的例子,我想定位到数据库中哪条数据有问题是负数导致了我的总数也负了

    如下图,我们可以看到,断点卡在了负数分数的对象上

    3. 异常断点(Exception Breakpoint)

    当特定类型的异常被抛出时暂停程序,可以帮助开发者快速定位异常抛出的位置。

    4. 监视断点(Watchpoint)

    在属性上打上断点,用于监控属性的变化 

    5. 方法断点(Method Breakpoint)

    当程序执行到特定方法时暂停程序,可以用来追踪方法的调用情况。

    以上是在IntelliJ IDEA中常见的几种断点类型,开发者可以根据实际调试需求选择合适的断点类型来辅助调试。

    6 源断点

    这个直接上需求解释,日常调试中,我想知道一个循环中的每次变量值,请问怎么办?

    可以在断点的more里进行设置

    7 多线程断点

    在多线程的场景下,我们如果想单独调试某个线程的断点,而被其他线程影响.

    我只是想调试下面的线程,而不想上面的线程执行影响我,那么我只需要打上多多线程断点即可,操作如下

     8 stream断点

    用于java8+等版本的stream使用时的断点,可以充分展示每个链式操作的数据流转过程

    9断点回退

    用于方法级别的调试时,回退到方法的进入之前,用于手速太快,不想重启,想重新执行一次断点的场景

    ps:(1.一定要是方法调用,2.引用对象不建议使用,回退后对象的内容会发生改变)

    如下,我们可以看到回退后,基本数据类型sum,从2回退到了0,可以重新进入方法

    高级技巧整理

    临时执行表达式/修改变量的运行值

    可以查看当前方法里面的变量信息,右键变量可以操作变量里面的值或者复制出来以及新建 Watch 等

    调试时,可以临时执行一些表达式,参考下图:点击这二个图标中的任何1个都可以

    然后回车,马上就能看到结果 

    当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value,剩下的事,地球人都知道。

    参考链接

    【精选】玩转 IDEA Debug 功能_idea lambda 断点-CSDN博客

    关于idea的八种断点调试_idea断点调试_张名佳的博客-CSDN博客

  • 相关阅读:
    2024 极术通讯-Arm 更新 Neoverse 产品路线图,实现人工智能基础设施
    终于找到了!Jenkins最全最详细入门指南
    Python之冒泡排序(AI自动写文章项目测试)
    C语言进阶(十五) - 预处理与程序编译初步解析
    【菜菜的sklearn课堂笔记】支持向量机-关于predict_proba、decision_function
    MySQL bit类型增加索引后查询结果不正确案例浅析
    20kb的照片怎么弄?一分钟教会你!
    MySQL尾部空格处理与哪些设置有关? 字符集PAD SPACE与NO PAD属性的区别、MySQL字段尾部有空格为什么也能查询出来?
    基于遗传算法的PID控制器增益的实现(Matlab代码实现)
    java虚拟机 JVM问题记录
  • 原文地址:https://blog.csdn.net/u014755700/article/details/134327869