IDEA调试技巧(图文详解,保姆教程)

文章目录

  • 基础篇:
    • 一、行断点
    • 二、详细断点(源断点)
    • 三、方法断点
    • 四、异常断点
    • 五、字段断点
  • 进阶篇
    • 一、条件表达式
    • 二、通过调试来打印堆栈信息
    • 三、可以通过调试来解析表达式
    • 四、避免操作资源drop frames
    • 五、常用按键功能介绍
    • 六、调试源码
    • 七、stream调试

基础篇:

一、行断点

IDEA调试技巧(图文详解,保姆教程)_第1张图片
IDEA调试技巧(图文详解,保姆教程)_第2张图片

二、详细断点(源断点)

打出源断点的方法:按住shift + 左键可以打出源断点
IDEA调试技巧(图文详解,保姆教程)_第3张图片
1.已启用(enable)
2.挂起(suspend):这个如果勾选的话,你会发现这个断点的颜色就会变成红色,和行断点的颜色相同。
suspend中有两个选项,一个是all,一个是Thread。前者勾选之后表示只要运行到这个地方就会停。后者是在多线程调试的时候使用的。表示只有在当前线程的时候会停,别的线程不会停。
3.条件(condition):这个是高阶停止条件,诸如满足if啥啥条件时才会停,这个就是高阶的调试时会用到。
IDEA调试技巧(图文详解,保姆教程)_第4张图片在程序运行完后,图中所示的位置会打印出经过断点的位置,在哪一行被触发的,具体的一个类,以及所在方法的详细签名都会显示出来。

三、方法断点

在方法的那一行上打上断点,就是方法断点
IDEA调试技巧(图文详解,保姆教程)_第5张图片
在方法断点的调试的时候,会分别在该方法的前后停住。
IDEA调试技巧(图文详解,保姆教程)_第6张图片

四、异常断点

异常断点需要自行配置,配置完了之后当程序运行到出现某个配置好的异常的时候就会停下来。
IDEA调试技巧(图文详解,保姆教程)_第7张图片
IDEA调试技巧(图文详解,保姆教程)_第8张图片
IDEA调试技巧(图文详解,保姆教程)_第9张图片
经过这几步即可完成异常断点的设置。

五、字段断点

IDEA调试技巧(图文详解,保姆教程)_第10张图片
检测整个生命周期值的变化
IDEA调试技巧(图文详解,保姆教程)_第11张图片
IDEA调试技巧(图文详解,保姆教程)_第12张图片
你会惊奇的发现,每个字段对应的值都会给你标上去,而且你需要特殊监控的字段会单独标注出来。

进阶篇

一、条件表达式

打上行断点之后,鼠标右击断点,即可对断点进行编辑,给断点添上条件
IDEA调试技巧(图文详解,保姆教程)_第13张图片
当i是偶数的时候停顿。
IDEA调试技巧(图文详解,保姆教程)_第14张图片

二、通过调试来打印堆栈信息

IDEA调试技巧(图文详解,保姆教程)_第15张图片
这两个勾选上之后就可以打印堆栈信息了。
IDEA调试技巧(图文详解,保姆教程)_第16张图片

三、可以通过调试来解析表达式

IDEA调试技巧(图文详解,保姆教程)_第17张图片
点击这个长得像计算机一样的按钮,就会出来evaluat面板。
IDEA调试技巧(图文详解,保姆教程)_第18张图片
点击评估按钮,就可以出来表达式解析的内容,可以很方便地查看各种你想查看的信息,这个功能简直强的离谱。

四、避免操作资源drop frames

IDEA调试技巧(图文详解,保姆教程)_第19张图片
在这里打上断点,模拟在此处遇到了事务操作的问题。
IDEA调试技巧(图文详解,保姆教程)_第20张图片
很好现在很难受的时候发生了,我们现在要做的就是将程序停下来,防止将错误的数据存到数据库中。正常人第一反应就是点击图中的红色方块,将程序强制停止下来,这样就不会把错误的数据存到数据库中了吧。那么事实是这样吗?让我们看看点击之后的效果。
IDEA调试技巧(图文详解,保姆教程)_第21张图片
很遗憾,更加shit的事情发生了。我们以为程序停止了,实际上并没有完全停止。tnn的还是把后面的语句都执行完了啊,错误的信息还是存到数据库中去了。

江湖上流传着一个解决方法,点击下图中的这个按钮,丢弃当前帧(drop frame)。
IDEA调试技巧(图文详解,保姆教程)_第22张图片
然而这么做实际的效果是:
IDEA调试技巧(图文详解,保姆教程)_第23张图片
回到了这个方法开始执行的时候,也就是进入该方法前的位置。
IDEA调试技巧(图文详解,保姆教程)_第24张图片
我们点击步入,又回到了这个位置,进行了无限的套娃操作。
然而真正的解决方法应该是。。。。。。。拔电源,没错,这样就不会又任何的问题了。

回到正题,真正的解决方法如下:
首先进入帧(frames)面板,找到对应的运行的位置,右键弹出选择框。
IDEA调试技巧(图文详解,保姆教程)_第25张图片
IDEA调试技巧(图文详解,保姆教程)_第26张图片
然后选择force return
IDEA调试技巧(图文详解,保姆教程)_第27张图片
然后看控制台发现后面的内容确实没有执行,控制台没有任何的输出。

五、常用按键功能介绍

IDEA调试技巧(图文详解,保姆教程)_第28张图片
1.显示执行点(show execution point):点击之后鼠标光标可以直接回到断点所在的位置。
2.步过(step over):不管当前行会不会调用其他的方法,或者是跳到其他地方去都不会管,直接执行完当前行跳到下一行代码。
3.步入(step in)和步出(step out):这个好理解就是执行下一步,回到上一步。
4.强制步入(force step into):点击之后,强制进入方法的内部查看。
5.运行到光标处(run to cursor):点击之后,可以直接运行到光标所在的位置,在这之间不会有任何停顿。

六、调试源码

在方法开始的地方打一个断点,然后在需要查看的方法的源码中也打上一个断点。
IDEA调试技巧(图文详解,保姆教程)_第29张图片
IDEA调试技巧(图文详解,保姆教程)_第30张图片

七、stream调试

在这三行的任意一个位置都是可以打断点的,并且在给stream打断点的时候会有特殊选项。
IDEA调试技巧(图文详解,保姆教程)_第31张图片
IDEA调试技巧(图文详解,保姆教程)_第32张图片
选好后,开始运行程序,我们发现程序中没有任何的数据显示和输出。
IDEA调试技巧(图文详解,保姆教程)_第33张图片
但是在像计算机按钮的旁边出现了一个按钮。
Trace Current Stream Chain(跟踪当前流链)
点击之后的效果简直裂开。
IDEA调试技巧(图文详解,保姆教程)_第34张图片
IDEA调试技巧(图文详解,保姆教程)_第35张图片
IDEA调试技巧(图文详解,保姆教程)_第36张图片
还可以选择扁平模式,看得更加直观。
IDEA调试技巧(图文详解,保姆教程)_第37张图片

你可能感兴趣的:(个人学习笔记,编程工具使用,intellij-idea,java,intellij,idea)