【IDEA 断点调试】

IDEA 断点调试

断点类型
  • 行断点 【红色圆点】
    点击左侧空白区域 、或 在行上ctrl+F8

  • 详细断点 【黄色圆点】
    shift+单击左侧空白区域,同时弹窗选择断点详细设置

  • 方法断点 【红色菱形】
    点击方法名所在左侧空白区域 。 进入方法后每一行都是挂起,打在接口抽象方法上,也会在实现类方法里逐行挂起(调试源码神器)

  • 字段断点 【红色眼睛】
    打在字段上,对该字段赋值修改操作都会挂起(默认),可以监控值的改变!亦可以设置读取时挂起,勾选 Field access
    在这里插入图片描述

  • 异常断点 【红色闪电】
    异常断点区别于以上行断点,不针对某特定行,而是全局。当捕获到某一行即将发生指定异常,就会以红色闪电挂起在这一行。

    设置方式:ctrl+shift+f8 呼出断点明细面板,或点击view breakpoints
    在这里插入图片描述
    【IDEA 断点调试】_第1张图片
    如当勾选 Any exception 则当捕获任何异常时都会挂起在发生异常处。

添加 一个 NPE异常 :add --> Java Exception --> 搜索 Null Pointer.
【IDEA 断点调试】_第2张图片

条件断点

对断点右键可以设置断点明细

  • 条件断点
    Conditions 可以设置当满足true的内容发生时才挂起。如循环中设置某特定值才挂起,更快定位。
    【IDEA 断点调试】_第3张图片
多线程断点

Suspend挂起勾选Thread,确保每个线程进入都会挂起。为ALL时,某些线程在当前断点位置可能不会停留。
在这里插入图片描述

Evaluate Expression

可以对变量的值做实时计算和查看,还能修改值并保存到栈帧中。(直接对变量造数复现bug)

在这里插入图片描述
点 Evaluate Expression ,输入想要计算的表达式就可以计算。如当前nextInt的值就是1
【IDEA 断点调试】_第4张图片
修改nextInt的值。对result 右键 set Value
【IDEA 断点调试】_第5张图片

断点回退 【Drop Frame】

想对步过后的代码再debug一次,不需要重启,可以使用 Drop Frame(移出栈帧)回退到方法调用前,再重新步入到断点。
在这里插入图片描述

避免操作资源 【Force Return】

只是想做调试,不希望deug后程序继续运行而将操作写入到数据库。stop 并不能阻止!

正确姿势:在当前 Frame 上右键,选择 Force Return 强制退出,结束当前方法,回到方法调用的外层方法。如果外层方法也需要避免操作就继续 Force Return,不需要就直接步过,这样就等于跳过了执行某个方法,还正常结束这个线程。
【IDEA 断点调试】_第6张图片

远程调试

关键点:建立服务器jvm和本地jvm之间的通讯。 在服务器jar启动时,加上启动参数设置开放另一个调试端口, 在本地配置一个remote 指向服务器地址和调试端口,在本地打断点后,访问服务器后端,会停留在本地断点。
并不难,用到时参考视频:https://www.bilibili.com/video/BV1g4411k7UJ?p=21

你可能感兴趣的:(Java,idea)