IDEA调试总结

前言


由于 IDEA 每个人使用的版本不同以及快捷键的设置不同,所以忽略了快捷键的使用。如果不知道快捷键请在 IDEA 工具栏里面点开 Run 菜单即可知悉

图标介绍

下面咱们进入看图说话环节,下列图标小伙伴知道是啥功能么?日常开发进行 Debug 使用到哪一些呢?可能也就那一半左右吧!

1 Show Execution Point: ALT+F10

显示当前执行点,可以清晰地从图标中看出意思,红色的箭头上面执行完了,箭头下面的是将要执行的内容。那么这个有啥功能呢?从下面的动图可以看到当停留在断点的时候切换到 System 类里面,通过点击此图标即可回到当前断点停留的地方(如果记住快捷键了连鼠标都不用点了)。你是不是还在通过点击 Debugger 下的 Frames 里面的断点调用链来回到当前断点停留的地方呢?赶快使用 Show Execution Point 功能吧!

2 Step Over:F8

单步执行,如果有方法则不进入方法(除非方法里面有断点)

3 Step Into   F7

单步执行,如果有方法则进入方法(请检查你的 IDEA Debugger 里面的设置,一些包里面的方法使用 Step Into 也进不去,可以把下面的 Do not step into the classes 勾取消即可)


4 Force Step Into    ALT+SHIFT+F7

基本与 Step Into 功能相同,不同点就是可以强制进入那些 JDK 源码里面。不需要如上面的 Do not step into the classes 设置。

 5 Step Out: SHIFT+F7

跳出当前所在的方法,返回调用此方法的地方。

6 Run to Cursor: ALT+F9

执行到光标所在位置,可以跳过中间需要执行的代码。

7 Drop Frame:

丢弃当前方法,回退上一个方法。如果是 main 方法则不会激活此图标。学”废“了这个妈妈再也不用担心我一不小心错过了断点,还需要重新来啦。

8 Trace Current Stream Chain:

对当前 Stream 进行链路追踪,喜欢用 JDK 8 新特性 Stream 来编程的小伙伴可以使用这个功能,谁用谁知道!

9 Evaluate Expression: (ALT+F8)

表达式计算,Debug 功能里面最牛逼的功能,不接受反驳!一切皆可使用这个功能。

断点的分类

在Java开发中,使用IntelliJ IDEA进行调试时,可以使用多种类型的断点来帮助开发者进行调试。以下是其中一些常用的断点类型:

1. 行断点(Line Breakpoint)

在代码的某一行设置断点,当程序执行到该行时会触发断点暂停程序。

2. 条件断点(Conditional Breakpoint)

在特定条件下触发断点的暂停,开发者可以指定一个条件,当满足条件时程序会在该断点暂停。

比如上面的例子,我想定位到数据库中哪条数据有问题是负数导致了我的总数也负了

如下图,我们可以看到,断点卡在了负数分数的对象上

3. 异常断点(Exception Breakpoint)

当特定类型的异常被抛出时暂停程序,可以帮助开发者快速定位异常抛出的位置。

4. 监视断点(Watchpoint)

在属性上打上断点,用于监控属性的变化 

5. 方法断点(Method Breakpoint)

当程序执行到特定方法时暂停程序,可以用来追踪方法的调用情况。

以上是在IntelliJ IDEA中常见的几种断点类型,开发者可以根据实际调试需求选择合适的断点类型来辅助调试。

6 源断点

这个直接上需求解释,日常调试中,我想知道一个循环中的每次变量值,请问怎么办?

可以在断点的more里进行设置

7 多线程断点

在多线程的场景下,我们如果想单独调试某个线程的断点,而被其他线程影响.

我只是想调试下面的线程,而不想上面的线程执行影响我,那么我只需要打上多多线程断点即可,操作如下

 8 stream断点

用于java8+等版本的stream使用时的断点,可以充分展示每个链式操作的数据流转过程

9断点回退

用于方法级别的调试时,回退到方法的进入之前,用于手速太快,不想重启,想重新执行一次断点的场景

ps:(1.一定要是方法调用,2.引用对象不建议使用,回退后对象的内容会发生改变)

如下,我们可以看到回退后,基本数据类型sum,从2回退到了0,可以重新进入方法

高级技巧整理

临时执行表达式/修改变量的运行值

可以查看当前方法里面的变量信息,右键变量可以操作变量里面的值或者复制出来以及新建 Watch 等

调试时,可以临时执行一些表达式,参考下图:点击这二个图标中的任何1个都可以

然后回车,马上就能看到结果 

当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value,剩下的事,地球人都知道。

参考链接

【精选】玩转 IDEA Debug 功能_idea lambda 断点-CSDN博客

关于idea的八种断点调试_idea断点调试_张名佳的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169262.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++的介绍及其发展史

初识C 一、什么是C,为什么会出现C二、C的发展史三、C的重要性3.1 语言的使用广泛度3.2 在工作领域 四、C的学习路径 及 书籍推荐 一、什么是C,为什么会出现C C语言是结构化和模块化的语言,适合处理较小规模的程序。 对于复杂的问题&#xff…

docker.service配置docker镜像加速

加速器配置方法很多,小白我用的是docker.service文件,所以直接在里面配置啊 配置以后,要systemctl daemon-reload下 ,然后docker info 下看下镜像地址是否是自己已配置的 docker run --privilegedtrue --name mytomcat -p 8080…

域名无法访问了,如何找回浏览器的缓存

背景需求 双十一即将来临,这意味着我购买了三年低配的阿里服务器,而它的服务期限也即将到期。为了提前做好准备,我在一周前对静态网站进行了备份,并成功地使用了Vercel进行部署(已经有了域名)。相比于付费…

家用工作站方案:ThinkBook 14 2023 版

本篇文章聊聊今年双十一,我新购置的家用工作站设备:ThinkBook 14 2023,一台五千元价位,没有显卡的笔记本。我为什么选择它,它又能做些什么。 写在前面 2021 年年中的时候,我写过一篇《廉价的家用工作站方…

红队系列-IOT安全深入浅出

红队专题 设备安全概述物联网设备层次模型设备通信模型 渗透测试信息收集工具 实战分析漏洞切入点D-link 850L 未授权访问 2017 认证绕过认证绕过 D-link DCS-2530Ltenda 系列 路由器 前台未授权RTSP 服务未授权 访问 弱口令命令注入思科 路由器 固件二进制 漏洞 IoT漏洞-D-Lin…

测试用例的设计方法(黑盒)

1.基于需求的设计方法 比如针对网易邮箱进行测试:分为功能相关和非功能相关两大类 但是这么设计的话,有无数多个测试用例,我们现在看到的只是一些大概的测试用例,要想设计具体的测试用例,需要用到下面测试用例的方法…

【数据结构初阶】顺序表SeqList

描述 顺序表我们可以把它想象成在一个表格里面填数据,并对数据做调整; 那我们的第一个问题是:怎么样在创建出足够的空间呢? 我们可以去堆上申请,用一个指针指向一块空间,如果申请的空间不够,我…

便捷Benchmark.sh 自动匹配workload(自用)

​ 因为db_bench选项太多,而测试纬度很难做到统一(可能一个memtable大小的配置都会导致测试出来的写性能相关的的数据差异很大),所以官方给出了一个benchmark.sh脚本用来对各个workload进行测试。 该脚本能够将db_bench测试结果中…

Halcon WPF 开发学习笔记:HSmartWindowControlWPF正常加载

文章目录 加载问题相关文章彻底解决 加载问题 我们在WPF中使用Halcon的时候,会出现图片被拉伸的问题,需要拖动才可以解决,我网上找了好久,终于找到了如何成功解决这个问题。 相关文章 3.7 Halcon 窗体显示对象消失问题 【halcon】…

uniapp中picker 获取时间组件如何把年月日改成年月日默认时分秒为00:00:00

如图所示,uniapp中picker组件的日期格式为: 但后端要 2023-11-08 00:00:00格式 如何从2023-11-08转化为 2023-11-08 00:00:00:👇 const date new Date(e.detail.value);//"2023-11-17" date.setHours(0, 0, 0); // 2…

如何判断从本机上传到服务器的文件数据内容是一致的?用md5加密算法!

问题场景 最近在帮导师做横向,我想把整个项目环境放到服务器中,需要把一个很大的数据文件传到服务器,传上去很方便,但是涉及到文件的压缩上传和服务器内解压环节,不是太确定文件在本机和服务器的数据内容是否一致。 解…

解决游戏找不到x3daudio1_7.dll文件的5个方法,快速修复dll问题

在电脑使用过程中,我们经常会遇到一些错误提示,其中之一就是“x3daudio1_7.dll丢失”。这个错误通常会导致软件游戏无法正常启动运行。为了解决这个问题,我们需要采取一些措施来修复丢失的文件。本文将详细介绍解决x3daudio1_7.dll丢失的方法…