认真阅读完这篇文章熟练掌握关于IDEA断点调试操作(图文详解)

举报
桃花键神 发表于 2022/04/17 12:43:04 2022/04/17
【摘要】 认真阅读完这篇文章熟练掌握关于IDEA断点调试操作(图文详解)

设置断点

选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可,再单击取消断点
image-20220125120326368
ctrl + shift + f8 查看取消断点
image-20220125120521690

开启调试会话

image-20220125120651695
shift + f9 调试模式,开始断点调试

断点调试

Show Execution Point:回到当前激活的断点处。效果:若你鼠标现在在别的页面/别的类上面,点击它快速“归位”
image-20220125132720826
Step Over步过:也叫单步调试,一行一行往下走,若这一行是方法也不会进入里面去。这个应该是平时使用得最多的按钮了,没有之一。所以,建议记住你的快捷键来提高效率哈
image-20220125133120282
Step Into步入:进入方法体内部。这里的方法指的你自定义的方法or三方库的方法,不会进入到JDK官方的方法里(如上面的System.out.println()这种它是不会进去的)
image-20220125133158756
Force Step Into强制步入:能进入任何方法,包括JDK的。一般查看底层源码才会用到它
image-20220125133218787
Step Out步出:它是搭配(Force) Step Into一起使用的,当通过step into进入到方法体内部想出来时,一般有两种方案:单步调试慢慢出来,另一个就是step out(推荐)
image-20220125133239657

  • Drop frame:回到当前方法的调用处,同时上下文内所有的变量的值也回到那个时候。该按钮能够点击的前提条件是:当前所处的方法有上级方法,如果你是main方法里,那么按钮就是灰色喽

    image-20220125133313675

  • Run to Cursor运行到光标处:你想要代码在哪里停一下,就把光标放在哪就成。这个功能实在太好用了,大大缓解了密密麻麻的断点,强烈推荐

    image-20220125133759210

  • Evaluate Expression表达式计算器:看图标就是个计算器嘛,所以你可以在这里执行任何合法的表达式

    image-20220125134655097

    image-20220126082702742

  • Java 8的流行,彻底让流式编程走进我们的视野。使用Stream编程的好处众多,但一直被大家诟病的是难以阅读和难以调试,特别是后者。

    为了调试它,我们经常需要插入其它断点,并分析流中的每个转换,不可为不麻烦。还好IDEA提供了处理该痛点的“能力”:当调试器在Stream API调用链之前或之内停止时,点击Trace Current Stream Chain这个图标即可以“非常好看”的图形化方式展示出来,一目了然:

    image-20220125135009787

image-20220125135337637

  • 调试时动态修改变量的值

    image-20220126082407677

  • 条件进入断点方式

    image-20220126083029544

  • 多线程调试技术,每个线程设置断点,并设置Thread模式,可控制线程的调试顺序

    image-20220126083914961

    image-20220126083850666

四大断点类型

IDEA把断点分为四大类型(截图中只有三类):

  1. Line breakpoint(行断点):图中红色小圆圈。顾名思义,在指定代码行设置断点
  2. Field watchpoint(属性断点):图中红色小眼睛。打在类的属性(static or 非static)上的断点,作用是在该属性读取和写入时激活
  3. Method breakpoint(方法断点):图中红色小菱形。标记在方法签名的那一行,在该方法执行的入口/出口处被激活
  4. Exception breakpoint(异常断点):红色小闪电。这是一个特殊但很好用的断点,当程序抛出指定异常时会激活异常断点。和其它断点不同,异常断点是项目全局的,它不需要打在具体某一行上

image-20220125135851700

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。