关于idea的八种断点调试
背景:在日常开发中,我们经常会使用到idea,那么debug就更不用说了,但是你真的会打断点么,看完这篇文章再下结论吧 (ps,部分图片因为公司做过内部分享,所以打码)
一:行断点
也就是我们去给某一行加上断点,很基础也很常用
二:方法断点
在方法的行去加上断点,这样在方法的进入和方法的结束,都可以卡住(用于监控方法的调用)
三:属性断点
在属性上打上断点,用于监控属性的变化 (适用于维护别人的代码,监控某个值在哪里做了改变)
四:异常断点
在属性上打上断点,用于监控属性的变化 (适用于维护别人的代码,监控某个值在哪里做了改变)
如上,如果某行代码np异常我想快速定位到,那么我就可以在异常行打上发生异常的断点,一旦发生异常就可以自动卡住,如下图
五:条件断点
某个条件触发的断点 (属实废话文学了)适用于业务上某些数据不符合预期,快速定位到有问题的数据对象
比如上面的例子,我想定位到数据库中哪条数据有问题是负数导致了我的总数也负了
如下图,我们可以看到,断点卡在了负数分数的对象上
六:源断点
这个直接上需求解释,日常调试中,我想知道一个循环中的每次变量值,请问怎么办?(老夫上来就sout,我猜你也是这么想的,其实有更优雅的方法哦)
那么我们尝试打一个源断点,如下图
运行结果如下,可以看出每行的值都展示出来了而且不会存在断点卡住的情况,左右二图的区别在于是否勾选展示断点行信息
七:多线程断点
在多线程的场景下,我们如果想单独调试某个线程的断点,而被其他线程影响
如上图,我只是想调试下面的线程,而不想上面的线程执行影响我,那么我只需要打上多多线程断点即可,操作如下
(ps:一定要勾选自己想要调试的线程)
运行结果如下:我们可以看到,卡在了第二个线程,并且第一个线程无输出
八:stream断点
用于java8+等版本的stream使用时的断点,可以充分展示每个链式操作的数据流转过程
九:断点回退
用于方法级别的调试时,回退到方法的进入之前,用于手速太快,不想重启,想重新执行一次断点的场景
ps:(1.一定要是方法调用,2.引用对象不建议使用,回退后对象的内容会发生改变)
如下,我们可以看到回退后,基本数据类型sum,从2回退到了0,可以重新进入方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2022-10-24 idea Tools->Generate JavaDoc
2022-10-24 oracle 连接池 查看
2022-10-24 Spring的JdbcTemplate自动关闭连接
2015-10-24 [No000030]程序员节发点别的:中国教育整个把人脑子搞坏了-易中天
2015-10-24 [No00002F]3步,教你如何分解需求
2015-10-24 [No00002E]关于大数据,你不知道的6个迷思
2015-10-24 [No00002D] “大学生还不如农民工”背后的“身份教育”困境