直接定位目标位置

调试想具体定位到目标断点处时做法有:

  • 不断的按F8,直至定位到目标位置
  • 在目标定位处打个断点然后按F9,跳到具体目标位置
  • 直接点击目标位置前面的小数字(推荐使用)
    例如下图,想从断点1处直接定位到2处,可以直接点击2处前面小数字“33”进行断点跳转定位

删除栈帧

背景:调试中不小心跳过了某个方法,想回退重新查看,以往的经历可能是重启项目再次调试。最好的方案是删除栈进行回退到某个方法中,重新调试。

1、老版本的IDEA点击下方小红叉(Drop Feame)进行删除当前栈帧,回退到上一个方法,重新进行调试

idea 查看Java堆栈 idea debug查看调用栈_右键


2、新版本的IDEA点击下图中的Reset Feame进行删除当前栈帧并回退。

idea 查看Java堆栈 idea debug查看调用栈_数据_02

条件断点

场景一:for循环中,想要查看某一条数据的情况

下图中断点处鼠标右键,输入表达式i=9,当调试的时候,直接进入i为9的断点处。

idea 查看Java堆栈 idea debug查看调用栈_idea 查看Java堆栈_03


idea 查看Java堆栈 idea debug查看调用栈_重启_04

场景二:举个栗子,当前调试的用户名称为张三,现在我想查看李四数据运行情况,(不需要重启项目,不需要修改代码)可以直接把张三改成李四。

如下图,开始调试时用户名为张三,右键user执行代码user.setUserName(“李四”),直接将原来的张三修改为李四,并继续往下进行调试

idea 查看Java堆栈 idea debug查看调用栈_intellij-idea_05


idea 查看Java堆栈 idea debug查看调用栈_idea 查看Java堆栈_06


idea 查看Java堆栈 idea debug查看调用栈_数据_07


idea 查看Java堆栈 idea debug查看调用栈_intellij-idea_08

部分数据展示

适用场景:某个实体类字段太多或是层级太多,而我只想查看某一部分数据,调试时每次都要层层点开实体类,会比较繁琐。

如下图调试时,点击输入框,输入要现实的数据表达式user.getUserName(),在调试时就是显示该指定的数据项。

idea 查看Java堆栈 idea debug查看调用栈_右键_09


idea 查看Java堆栈 idea debug查看调用栈_数据_10

直接执行某段代码

调试时,可以将某段代码,单独拿出来执行查看其返回值。

选中要执行的某个代码块,右键执行代码,单独查看该代码块运行结果

idea 查看Java堆栈 idea debug查看调用栈_重启_11


idea 查看Java堆栈 idea debug查看调用栈_intellij-idea_12

断点太多指定开启

直接上图,一看就懂

idea 查看Java堆栈 idea debug查看调用栈_重启_13


结束语:

如有错误地方或不合适地方,欢迎指点我会及时修正。同时还有其他小技巧,欢迎留言。