各个键位作用

当使用debug方式运行代码时,会出现以下界面。

IDEA debug模式启动java程序 idea debug进入方法_字段


每个按钮的功能如下:

1:(Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行

2:(F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。

3:(F7):步入。如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。和步出常成对使用。

4:(Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

5:(Shift + F8):步出,从步入的方法内退出到方法调用处,并进入下一行,此时方法已执行完毕,只是还没有完成赋值。

6:回退断点。回退到当前方法的调用处,不赋值。

7:(Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。

8:(Alt + F8):计算表达式。

9:(ctrl+F5)重新debug程序

10:

11:(F9)执行当前代码直到下一个断点

12:(ctrl+F2)终止debug

13:(ctrl + Shift + F87):查看所有断点

14:让当前断点失效


断点类型

主要有:行断点、详细断点、方法断点、异常断点、字段断点

IDEA debug模式启动java程序 idea debug进入方法_字段_02

  1. 行断点
    顾名思义,最普通的断点,起到停顿程序执行的作用
  2. 详细断点
    shift+左键
  3. IDEA debug模式启动java程序 idea debug进入方法_后端_03

  4. 方法断点
    在方法上打断点
    有一个用法很实用,在接口中的方法上打断点,debug时会自动在相应的实现类停下
  5. 异常断点
    异常断点不需要在某个地方打断点,而是提前设置遇到这种异常时就自动停止
    设置方法:
  6. IDEA debug模式启动java程序 idea debug进入方法_java_04

  7. 点击加号,找到Java Exception BreakPoint,然后搜索自己想要添加的异常断点类型
  8. IDEA debug模式启动java程序 idea debug进入方法_intellij-idea_05

  9. 字段断点
    对某个字段进行监控,比如对如下age监控,执行代码时,每次遇到该属性变化时就会停顿
  10. IDEA debug模式启动java程序 idea debug进入方法_执行顺序_06


断点条件表达式

判断满足条件时,就触发断点停顿

用法:在断点处右键,比如设置只有变量i=1时才停顿

IDEA debug模式启动java程序 idea debug进入方法_执行顺序_07

实时修改断点处变量值

这个用的地方不多,我觉得主要是当前这一步程序可能存在问题得不到正确变量值得时候,先手动给一个值继续运行下面的程序

IDEA debug模式启动java程序 idea debug进入方法_java_08

右键要修改的变量,点击setValue即可修改

打印堆栈信息

勾选打印断点信息和打印堆栈信息

IDEA debug模式启动java程序 idea debug进入方法_字段_09


表达式解析

可以实时的获取当前变量的值,方便分析代码中的问题

IDEA debug模式启动java程序 idea debug进入方法_执行顺序_10


避免操作资源

当我们调试代码时,有时候直接接入生产环境,那么一些有问题的代码调试过程中产生的结果如果真的输入到数据库或者消息队列中,那么就可能产生大问题,所以需要强制退出当前调试

IDEA debug模式启动java程序 idea debug进入方法_执行顺序_11


使用如下操作强制退出:

IDEA debug模式启动java程序 idea debug进入方法_执行顺序_12


控制线程执行顺序

debug模式下可以控制线程执行顺序

首先在断点处勾选上Thread

IDEA debug模式启动java程序 idea debug进入方法_字段_13


然后就可以切换线程了

IDEA debug模式启动java程序 idea debug进入方法_执行顺序_14


流式编程的断点

采用流式编程的代码有独特的断点调试方式,可以方便的看到每次流式处理的结果,注意IDEA版本太低的话是不支持的。

IDEA debug模式启动java程序 idea debug进入方法_字段_15