IDEA常见调试技巧

1 常用断点类型

1.1 行断点

在相应行打断点
在这里插入图片描述

1.2 详细断点

idea中详细断点的快捷键是shift+鼠标左键,如果运行详细断点的时候,没有选择(Suspend)挂起,
断点是不会停的,但会打印详细的类名和方法名和具体行数,选择(Suspend)和行断点一样
在这里插入图片描述
在这里插入图片描述

1.3 方法断点 | 接口跳转实现类

在方法上打断点,会在方法的第一个行和最后一行挂起,可以看整个方法运行完后的所有该方法参数的堆栈信息
对于接口,只需在接口上打一个方法断电,断点会在他具体的实现类中挂起

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LKnPTb23-1687701859789)(img_4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ldLIqJj-1687701859789)(img_5.png)]

1.4 异常断点 | 全局捕获

不用在业务代码上打断点,在idea设置之后,只要有那个异常,便会在异常的那行自动挂起,
推荐使用
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4855NtGa-1687701859790)(img_7.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mPBT9dhp-1687701859790)(img_8.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRmYQnAZ-1687701859790)(img_9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vx8v1zg-1687701859790)(img_10.png)]

1.5 字段断点 | 读写监控

字段断点,该断点打在类的属性上,当属性值变化是就会在变化的地方挂起
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2c5oJbm-1687701859791)(img_11.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8UueMKe9-1687701859791)(img_12.png)]

person.age的值第一次变化是在构造方法中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gcIFtIzd-1687701859791)(img_13.png)]

第二次变化是set值的时候变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-II9GNM4M-1687701859791)(img_14.png)]

2 常用断点使用例子

2.1 条件表达式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZBxoEYo-1687701859791)(img_15.png)]

只会在i为偶数的时候,断点暂停
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TUcMDcQD-1687701859792)(img_16.png)]

只会在thread1的时候,断点暂停
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tdufdepV-1687701859792)(img_17.png)]

2.2 打印堆栈信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WIRxasWm-1687701859792)(img_18.png)]

2.3 表达式解析

通过表达式方式,在调试的时候,想知道某个部分信息,或者修改参数信息等,
都可以用这种表达式方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uz3QQj7A-1687701859792)(img_19.png)]

2.4 强制返回

① 按照以下截图能够强制返回调用方法前的地方,但并未跳过该方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dCRGpxMz-1687701859792)(img_20.png)]

② 下面截图能够强制并跳过,避免出现异常的时候造成脏数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Yb4Z8Vo-1687701859793)(img_21.png)]

2.5 bug按键测试

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IbUJ8J5e-1687701859793)(img_23.png)]](https://img-blog.csdnimg.cn/542cb94a7021445a8f610cf474e2ebb3.png

① step over (F8) 一步一步运行
② step into 进入方法体,但是jar引入的方法不会进入
③ force step into 和②一样,并且可以进入源码的方法
④ step out 和②想法,跳出
⑤ Run to Cursor 对于有些行不想执行,直接跳到光标所在行
⑥ show Execution point 之前跳转到打断的行

2.6 jdk 8 以上流式处理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DtCUmTfe-1687701859793)(img_24.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1mrEhF7X-1687701859793)(img_25.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWhDsHWy-1687701859793)(img_26.png)]

选择flat modle (平坦模式)
显示全过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqpieXYb-1687701859794)(img_27.png)]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值