你不知道的ideadebug调试小技巧

eamonzzz      2022-02-16     746

关键词:

一、多线程调试断点

Intellij IDEAdebug断点调试是有一个模式的选择的,就像下面这张图,平时我们都使用的是默认的 ALL(在Eclipse中默认是线程模式) ,这种模式我们只能将一个线程断下来,但其他线程却已经执行过了;而将其改为 Thread 后,就可以多个线程都断下来,并且可以很方便的切换线程的执行流程,这就是多线程调试。

技术图片

debug控制台能够很方便的查看线程的执行状态,也可以很方便的选择某个线程去执行:

技术图片

二、回退断点

不知道大伙有没有遇到这样一个问题,当我们进行debug时,通常不会进入某个方法一步一步的执行,而是选择性的跳过;当你想要回头观察某个变量的值得变化时,而你刚好没有跟进去,跳过了这个方法,这个时候,变量就被赋值了,我们通常的做法是重来一次。

其实IDEA的调试功能是非常强大的,我们来看看熟悉的调试窗口:

技术图片

使用红色框框出来的部分,表示当前程序执行到哪一块,哪一部分,你可以尝试用鼠标点点看,你会发现编辑器会跳转到对应的代码中,当然当前断点的位置通常会在列表的第一条。然后我们使用右键单击,你就可以看到如下图所示:

技术图片

或者你也可以在下图中找到 Drop Frame

技术图片

在IDEA中,所谓的回退,叫 Drop Frame,选择Drop Frame后,程序会跳转回调用当前这个方法的地方,当然已经改变的值是不会恢复的。但是当该方法再次被调用时,你可以观察到某个变量什么时候被改变,至少我们不用再去重新运行一遍程序。

三、条件断点

条件断点就是当满足某个条件(通常是表达式)时,debug断点才会生效;这在循环中debug是非常有用的;例如我们想要在循环体中调试:当某个变量满足某个条件时,需要断点调试,来查看详细的执行流程及变化情况。

我们说过,IDEA中的debug功能是非常强大的,要使用条件断点也非常简单,下面这张图片中 Condition中的内容代表当nameeamon:23时,程序执行到断点处停下来。

技术图片

有了条件断点,这样一来,那些不相关和我们不关心的代码就可以直接跳过了。

四、临时断点

所谓临时断点就是只断一次,IDEA默认断点会一致存在。如果你只需要暂停一次,那么使用临时断点会比较方便,因为暂停一次之后断点就自动消失了,不用手动取消。

临时断点可以通过在打断点时按住 Alt 或者 option 键,然后创建断点。也可以通过右键断点处,选择 more 然后在窗口中选中 Remove once hit

技术图片

技术图片

五、求值计算

求值计算功能在我们debug过程中,可以很方便的查看程序中所有变量的值,也可以临时修改程序中变量的值,这个功能能在一定程度上辅助我们进行代码调试。

这个功能可以在debug时在debug窗口打开:

技术图片

打开后是这样的:

技术图片

然后你就可以在表达式输入框中,输入你想要的操作,比如,查看变量、修改变量(临时的)、调用某个方法等;这些操作结果将会在下方的Result 窗口中输出。

技术图片

idea--ideadebug断点调试技巧

  目录一、Debug开篇二、基本用法&快捷键三、变量查看四、计算表达式五、智能步入六、断点条件设置七、多线程调试八、回退断点九、中断DebugDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debu... 查看详情

史上最全的ideadebug调试技巧(超详细!建议收藏!)(代码片段)

来源:https://www.cnblogs.com/chiangchouDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代... 查看详情

史上最全的ideadebug调试技巧(超详细!建议收藏!)(代码片段)

来源:https://www.cnblogs.com/chiangchouDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代... 查看详情

你不知道的css---position小技巧(代码片段)

众所周时"position:sticky;"是粘性布局,相当于sticky与fixed的组合。但他的细节和妙用,未必人人皆知。所以记录下我这一周的学习总结,供大家参考使用。回顾positionvaluesposition中目前有五个值分别是static、relative、absolute、f... 查看详情

#你不知道的apicloud#五步搞定ios断点调试

纯技术帖,展示的其实是原生开发中一个小技巧,但是可以顺带解决APICloud应用开发过程中的断点调试问题,大幅提高开发效率.准备1.硬件准备:  mac系统+xcode软件.(windows系统,可以花几十大洋,去装个mac虚拟机.)2.技能准备:  会下... 查看详情

全网最实用的ideadebug调试技巧(超详细案例)(代码片段)

目录前言正文Debug的常见使用场景基础操作行断点(LineBreakpoints)方法断点(MethodBreakpoint)字段断点(FieldWatchpoints)异常断点(ExceptionBreakpoints)主动抛异常(ThrowException)降帧(DropFrame... 查看详情

全网最实用的ideadebug调试技巧(超详细案例)(代码片段)

目录前言正文Debug的常见使用场景基础操作行断点(LineBreakpoints)方法断点(MethodBreakpoint)字段断点(FieldWatchpoints)异常断点(ExceptionBreakpoints)主动抛异常(ThrowException)降帧(DropFrame... 查看详情

如何优雅的使用ideadebug进行调试(代码片段)

如何优雅的使用IDEADebug进行调试Debug是我们在开发过程中经常会使用到的一种排查问题的手段,我们用它来定位分析异常的出现,以及程序在运行中参数的变化。IDEA本身具有很强的调试功能,掌握IDEA的一些Debug技巧&#x... 查看详情

ios10个实用小技巧(总有你不知道的和你会用到的)

在开发过程中我们总会遇到各种各样的小问题,有些小问题并不是十分容易解决。在此我就总结一下,我在开发中遇到的各种小问题,以及我的解决方法。比较普遍的我就不再提了,这里主要讲一些你可能不知道... 查看详情

调试接口小技巧-通过接口调试工具去下载上传文件

...,比如文件的下载,在我们自己调试的时候,会有一些伙伴不知道怎么调试,其实是和普通的接口一样的,只是有一些小技巧,多余的设置需要知道我最常用的两个接口调试工具是PostMan和ApiFox,我就主要这两个工具进行讲解注意对于文件... 查看详情

如何优雅的使用ideadebug进行调试(代码片段)

如何优雅的使用IDEADebug进行调试Debug是我们在开发过程中经常会使用到的一种排查问题的手段,我们用它来定位分析异常的出现,以及程序在运行中参数的变化。IDEA本身具有很强的调试功能,掌握IDEA的一些Debug技巧&#x... 查看详情

ideadebug调试怎么使用

工具/材料eclipse方法1、以下面这段代码为例,首先设置断点,如图所示,然后点击菜单栏上的“甲壳虫”标识,进入debug页面。2、debu页面如图3、按F6进行调试。如图所示,“variables”表示的是变量的值的变化代码进行到哪一步... 查看详情

代码调试有哪些初学程序员不知道的小技巧?

无论你是初学者,还是软件开发领域的专家,都无法避免代码中出现错误。我们所有人开发的代码中都有错误,因为,没有人能够彻底的了解编码过程中发生的一切。因此,在项目开发过程中需要耗费时间ÿ... 查看详情

ideadebug时拷贝数据evaluateexpression窗口

参考技术A今日份鸡汤:别人再好,也是别人。自己再不堪,也是自己,独一无二的自己。只要努力去做最好的自己,一生足矣。为自己的人生负责,为自己的梦想买单。用IDEA调试时候经常需要拷贝变量值出来排查,特别是数据结... 查看详情

你不知道的css技巧

背景最近在看css新世界,对于忙于写业务的我,收获颇多。本文不考虑css兼容性。@supports@supports是CSS中常见的@规则,可以用来检测当前浏览器是否支持某个css特性。需求:不支持animation的浏览器,使... 查看详情

保证你不知道的vue3技巧(代码片段)

微信搜索【大迁世界】,我会第一时间和你分享前端行业趋势,学习途径等等。本文GitHubhttps://github.com/qq449245884/xiaozhi已收录,有一线大厂面试完整考点、资料以及我的系列文章。VNodehooks在每个组件或HTML标签上,我们... 查看详情

idea优化ideadebug调试模式特别慢methodbreakpointsmaydramaticallyslowdowndebugging

 【IDEA优化】IDEADEBUG调试模式特别慢Methodbreakpointsmaydramaticallyslowdowndebugging 解决问题:是因为在MappingDAO中加了断点的原因:查看我们哪里有断点      查看详情

四两拨千斤——你不知道的vscode编码typescript的技巧

如果你体验过JAVA这种强类型语言带来的便利,包括其丰富的类型变量、抽象与接口,转而使用JavaScript时,一定会觉得不够满意。尤其是JavaScript声明的变量Number可以轻而易举的分配给String,IDE如何执行任何类型的IntelliSense都让人... 查看详情