IntelliJ-IDEA-Debug技巧


IntelliJ IDEA 是目前所有 IDE 中最具备沉浸式的 JVM IDE,没有之一。 下面就来看看,她的debug如何使用

Debug 设置

在这里插入图片描述

如上图标注 1 所示,表示设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket 会快点。

Debug 常用快捷键

idea快捷键

有时候我们可以这样粗鲁地认为 Debug 的使用就是等同于这几个快捷键的使用,所以上面的 必备
快捷键是我们必须牢记的,这些也是开发很常用的。

Debug 特殊技能使用

查看所选对象

方法常用有三种方式:

  1. 选中对象后,使用快捷键 Alt + F8。
  2. 选中对象后,拖动对象到 Watches。
  3. 选中对象后,鼠标悬停在对象上 2 秒左右。
    在这里插入图片描述

弹出表达式输入框中 IntelliJ IDEA 也是能帮我们智能提示

在这里插入图片描述

过掉后面的所有断点

当我们需要过掉后面的所有断点的时候,我们不需要去掉这些断点,只需要点击左下角那个小圆点,点击小圆点之后,所有断点变成灰色,然后我们再在按快捷键 F9 即可过掉当前和后面所有的断点
在这里插入图片描述

给断点设置进入的条件

在这里插入图片描述

给断点设置更复杂的步入条件

红框中的 Pass count 表示跳过多少次后开始步入,比如 for 循环中,我们要查看一个变量循环 3 次后的结果就可以使用该方式
在这里插入图片描述

某些不重要的断点步入之后自动删除

对于某些不重要的断点,只要步入一次就够了,就可以勾选此选项,让它步入之后自动删除。
在这里插入图片描述

需要其他断点先触发之后再进行触发

对于某些场景的断点,需要其他断点先触发之后再进行触发,可以选择此项。默认选择的是: None
在这里插入图片描述

退到方法体外

有时候当我们步入方法体之后,还想回退到方法体外。如 Gif 演示,断点进入 addNum 方法后,点击 Drop Frame 按钮之后,断点重新回到方法体之外。
在这里插入图片描述

当前断点线程执行的堆栈情况

  • 左侧红框内容,可以看到当前断点线程执行的堆栈情况,最上面的为当前断点位置,下面的是断点前面执行的方法,如果需要看断点前面走过的路,可以查看该区域。并且可以用图上箭头按钮进行限制显示框架类代码的执行过程,而不是包括依赖 jar 里面的执行过程。

  • 右侧红框内容,可以用来展示单点断点位置的内存情况,对于判断内存溢出相关问题很有帮助。
    在这里插入图片描述