IDEA断点调试技巧

  • 1 怎么开启断点调试
  • 2 调试界面咋那么多按钮
    • 2.1 返回断点位置
    • 2.2 步过
    • 2.3 步入
    • 2.4 强制步入,步出
    • 2.6 回退断点
    • 2.7 断点跳到光标处
    • 2.8 表达式计算
    • 2.9 恢复程序
    • 2.10 查看所有断点
    • 2.11 其他
  • 3 调试断点
    • 3.1 方法断点
    • 3.2 属性断点
    • 3.3 异常断点
    • 3.4 终止断点
    • 3.5 条件断点
    • 3.6 流断点
    • 3.7 多线程断点

1 怎么开启断点调试

2 调试界面咋那么多按钮

2.1 返回断点位置

2.2 步过

2.3 步入

2.4 强制步入,步出

2.6 回退断点

如果你的代码中没有调用其他地方的方法,那么是呈灰色的,无法使用,只有进入更深层的方法,才能够使用,其实就是后悔药,我们很多时候调试时不小心按的快了点,很容易错过想看的位置,只能再次重启吗?不,使用这个drop frame 就可以了,演示如下。

可以看到,这里往下执行了add,但是还没有执行完,按这个按钮,再次回到了调用方法之前,但对于数据库插入等操作,其实是无法回退的,这里的回退只是因为记录了栈信息才能够做到的。

2.7 断点跳到光标处

主要是为了快速跳转到光标指向的那一行,如下所示

2.8 表达式计算

我们模拟从数据库获取集合,用表达式查询对应的元素,如下所示。

2.9 恢复程序

按钮称为 Resume Program,能够跳转到指定的断点处,我们在10行和第100行各加一个断点,需要点几下该按钮跳转到100行呢?答案是一次即可,第一次断点会在第10行停下,点击改按钮直接飞越90行到第100行,如下所示。

2.10 查看所有断点

主要是设置,查看断点信息,大家看着应吧,实用的方法我会在下面讲的。

2.11 其他

在watch可以监控变量的变化,有同学说,中间的变量栏也可以看啊,但是单独拉出来,看起来更加的方便,演示如下。

3 调试断点

3.1 方法断点

方法断点是不是用在普通方法上的,最好的用法是在接口上使用,当我们在调试源码的时候,如果在接口上打了断点,再往下走,可以直接跳转到实现类的实现方法上,而不需要我们一个个的去找。

案例中,有一个接口DemoInterface,它有两个实现类,让我们看下效果吧,演示如下。


注意,方法断点是一个菱形标志。

3.2 属性断点

属性断点是打在属性上的,我们无需再getter setter方法上打断点,在属性上打上断点,就会出现一个小眼睛的标志,如下所示。

在眼睛上点击右键可以设置。

我们一般是通过getter,setter方法设值的,所以就会在这两个方法上停留。

3.3 异常断点

在线上由于空指针出现了BUG,我们想快速定位到哪里出现了空指针,应该怎么做呢,答案就是,异常断点!演示如下。

注意,异常断点是一个闪电的标志。

可以看到,我们在全局打了个空指针断点,只要哪里出现了空指针,就会在那里停止,太方便了!

3.4 终止断点

前面我们说过,即便停止程序,也不会让我们后面运行的代码取消执行,那么我一定要取消执行可以吗?当然是可以的,演示如,在方法栈上点击右键,有一个Force Return,然后再点击Resumer Program,就可以直接终止返回了。

3.5 条件断点

我想要在某个条件满足的时候打上断点,而不想一步步的走下去,有什么办法吗?当然有,在断点处右击,在condition里填入相应的条件即可,演示如下。

3.6 流断点

我们使用流的时候,很难看到中间做了什么,但其实idea就帮我们解决了,我用断点调试下面代码,给大家演示下。

其实只需要找到这个按钮就行了

 List<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 3, 4, 4, 4, 5, 6, 78));List<Integer> collect = list.stream()//先将偶数筛选,再去重,返回集合.filter(s -> s % 2 == 0).distinct().collect(Collectors.toList());

3.7 多线程断点

给大家演示两种情况,多线程下调试,定时任务下调试。

这个演示比较简单,可能有同学不以为意,你可以去尝试下,如果使用默认All来调试多线程程序会发生什么,可能某条线程就跑掉了,没有停留,而这种方式可以捕获到运行的所有线程。

定时任务这样调试有个好处,即便我们在调试的过程中下一个任务也到时间了,也不会执行,防止多次定时任务执行带来的干扰,我在演示前已经提前一分钟启动了程序,每隔10秒钟打印一次,但是由于暂停了线程的执行,多次点击Resumer Program,发现并没有往下执行哦,而是再等了10秒钟之后执行。

IDEA断点调试技巧相关推荐

  1. Chrome JS断点调试技巧

    Chrome调试折腾记_(2)JS断点调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 技巧三:查看断点内部的作用范围[很实用] 技巧4:监听事件断点 技巧5:DOM及 XHR监听跳 ...

  2. KEIL 断点调试技巧

    实际项目中断点调试起了很大作用,Keil的断点调试功能很强大,除了普通的设置断点运行到断点处,还有单步.跳转.除了这些常规的方法,对于一些疑难杂症,常规方法就有点杯水车薪了.下面我总结下我在工作中常用 ...

  3. c语言程序调试断点,VC6断点调试技巧

    前言: 看到不少同学在学习过程中总会碰到各种与自己期望不符的结果而不知所措,如运行结果不对,程序运行崩溃.输出乱码等这种语法正确编译能通过而逻辑不正确的情况,发生这类问题大多都是因为我们无法掌控编译器 ...

  4. c语言 vc 单步调试方法,VC6断点调试技巧

    在第一篇中,我们为大家介绍了如何用VC6进行断点调试,可以实现程序的分步执行.今天我们将继续深入,进行更多断点调试的学习. 首先,写一个例子程序: #include int fun() { print ...

  5. JavaScript 断点调试技巧

    大家好,我是若川.最近组织了源码共度活动:1个月,200+人,一起读了4周源码,参与的小伙伴都表示收获很大.如果感兴趣可以点击链接扫码加我微信 ruochuan12.之前推荐过很多次调试文章,说明调试 ...

  6. IDEA断点调试技巧,多张动图包教包会。

    文章目录 一. 怎么开启断点调试? 二. 调试界面咋那么多按钮? 1.返回断点位置 2.步过 3.步入 4,5.强制步入,步出 6.回退断点 7.断点跳到光标处 8.表达式计算 9.恢复程序 10.停 ...

  7. IDEA断点调试技巧,多张动图包教包会

    文章目录 一. 怎么开启断点调试? 二. 调试界面咋那么多按钮? 1.返回断点位置 2.步过 3.步入 4,5.强制步入,步出 6.回退断点 7.断点跳到光标处 8.表达式计算 9.恢复程序 10.停 ...

  8. Intellij IDEA 2017 debug断点调试技巧与总结详解篇

    IntelliJ IDEA使用教程 (总目录篇) 在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦. 下面不要在意,这个快捷键具体是啥 ...

  9. Eclipse BreakPoint断点调试技巧和基本步骤方法

    Eclipse BreakPoint 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的 ...

最新文章

  1. mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析
  2. 【CVPR2020-谷歌】自动驾驶中多目标跟踪与检测框架 RetinaTrack
  3. 【PMP】知识点总结20170528
  4. qml基础学习 基础概念
  5. unity3d Update()和FixedUpdate()的区别
  6. 网易智慧企业Node.js实践(1) | Node应用架构设计和React同构
  7. nobelking 3 js 数字和数字相加 字符串连接 数字和字符串连接1
  8. leetcode之回溯backtracing专题1
  9. NET Core微服务之路:让我们对上一个Demo通讯进行修改,完成RPC通讯
  10. 让你的 Qt 桌面程序看上去更加 native(三):自定义 style
  11. 各种格式的文件使用工具打开
  12. jmeter 入门到精通
  13. android 博饼代码,中秋博饼游戏下载
  14. Redis——SDS
  15. [技术讨论]网络软件开发的bug分析与公司开发管理问题之阿里篇
  16. 腹有诗书气自华,记2016年读过的好书
  17. 盲打打字php,盲打26键打字口诀是什么
  18. keras运行时指定显卡及限制GPU用量
  19. 监控系统相关的常见面试问题
  20. 如何开始 Kaggle 比赛之旅

热门文章

  1. [架构之路-118]-《软考-系统架构设计师》-软架构设计-11-可靠性相关设计
  2. matplot三维画图
  3. 用Zotero在word中插入引文
  4. Autodesk官方卸载工具软件安装教程
  5. CyberMiles发布动态可扩展语言Lity,它凭什么叫板Solidity?
  6. uniapp实现倒计时功能
  7. QLineEdit的输入掩码属性
  8. This version of SOLIDWORKS MBD has not been commissioned properly, please con...
  9. 1招教你怎么清理苹果手机垃圾,快来
  10. 2023年副业收入!这是我看到的最好的一篇介绍网络兼职的文章