你不知道的 IDEA Debug调试小技巧

巨魔战将
• 阅读 10816

一、多线程调试断点

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

你不知道的 IDEA Debug调试小技巧

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

你不知道的 IDEA Debug调试小技巧

二、回退断点

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

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

你不知道的 IDEA Debug调试小技巧

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

你不知道的 IDEA Debug调试小技巧

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

你不知道的 IDEA Debug调试小技巧

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

三、条件断点

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

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

你不知道的 IDEA Debug调试小技巧

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

四、临时断点

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

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

你不知道的 IDEA Debug调试小技巧

你不知道的 IDEA Debug调试小技巧

五、求值计算

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

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

你不知道的 IDEA Debug调试小技巧

打开后是这样的:

你不知道的 IDEA Debug调试小技巧

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

你不知道的 IDEA Debug调试小技巧

点赞
收藏
评论区
推荐文章
cpp加油站 cpp加油站
3年前
【工欲善其事,必先利其器】之gdb五大高级用法
本篇文章讲解gdb的一些高级用法,在我们的开发生涯中,调试是很重要的技能,而在linux下开发,最常用的调试工具就是gdb了,所以这里介绍几种gdb比较高级的用法,助力我们的调试技能。还是先看下思维导图:1.gdb怎么调试多线程gdb调试多线程时,默认情况下是所有线程同时都在执行,但是假设我们想只有一个线程继续执行,其他线程都暂停呢?下面就来看一看该怎么
Wesley13 Wesley13
3年前
Activity启动模式
当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode""设置。1\.Standard模式(默认)我们平时直接创建的Activity都是这种模式的
Stella981 Stella981
3年前
Python 使用VS Code进行调试
VSCode是一款非常好用的编辑器,现在我基本上所有的开发任务都在VSCode上完成。它的代码调试工具其实也非常强大,但是许多人都不知道该怎么用,今天就来学习怎么用它调试Python代码吧。1.准备既然是用VSCode调试Python代码,那当然你得先安装好Python啦,如果你还没有安装,可以看这篇文章:超详细Pyt
Wesley13 Wesley13
3年前
Unity小知识点大全(二)
 51.Inspector调试模式在Inspector面板右上角的下拉菜单中,选择Debug命令,启动调试模式,此时将显示组件包含的所有变量,包括私有变量,当运行编辑器时,可以实时查看各组件所有变量的变化。52.高亮显示Debug.Log对应的游戏对象当使用Deb
Wesley13 Wesley13
3年前
vivo Y71的USB调试模式在哪里,开启vivo Y71USB调试模式的流程
就在我们使用安卓手机通过数据线连接到电脑的时候,如果手机没有开启usb开发者调试模式,电脑则没能成功识别我们的手机,部分工具也没能正常使用,此情况我们需要找解决方法将手机的usb开发者调试模式打开,以下内容我们讲解vivoY71如何开启usb开发者调试模式的方法。首先,在vivoY71应用程序界面点中“设置”ICON,进入vivoY71系统“设置”
Wesley13 Wesley13
3年前
Java与JS代码调试技巧
断点的分类,断点可以到到类名上,变量行上,方法名上。    java源码上可以打断点,断点打到方法头上,编译的时候断点信息不会被去除掉,编译后的class文件在debug模式下运行,可以触发断点,挂起线程。    eclipse的断点,都可以进行属性设置,设置断点触发的场景(例如,断点的可用性,触发场景,过滤执行线程)。  
Stella981 Stella981
3年前
Hadoop完整搭建过程(一):本地模式
1本地模式本地模式是最简单的模式,所有模块都运行在一个JVM进程中,使用本地文件系统而不是HDFS。本地模式主要是用于本地开发过程中的运行调试用,下载后的Hadoop不需要设置默认就是本地模式。2准备工作笔者喜欢把JDK放在/usr/local下,运行前请确保设置了JAVA_HOME,注
Stella981 Stella981
3年前
PHPStorm等编辑器debug调试(包括使用postman、soapUI)
很多人在开发的时候,需要进行断点调试,但是很多人配置了很多,还是调试不了,其实是不需要这么麻烦的。注意:PHPStorm等编辑器debug的配置不用进行任何配置,默认配置就好实质上,断点调试的时候,只需要传入一定的参数,就可以进行断点调试先拿PHPStorm来说:1、确认php.ini中debug打开并有基础的配置(没有的话自己加一下
Wesley13 Wesley13
3年前
IDEA多线程下多个线程切换断点运行调试的技巧
<divid"cnblogs\_post\_body"class"blogpostbody"<p多线程调试设置可以参考:http://www.cnblogs.com/leodaxin/p/7710630.html</p<p&nbsp;</p<p1断点设置如图:</p<p<imgsrc"https://images2017
京东云开发者 京东云开发者
7个月前
前端调试实践
作者:京东零售黄泽平前言在日常调试问题中,相信我们很多人都是用console去排查相关的问题,虽然问题也可以排查出来,但是有时它的效率并不高。这篇文章主要讲解关于断点和一些日常调试技巧的内容,方便你在日后调试问题中,能在不同的前端场景应用不同的调试方式,翻
巨魔战将
巨魔战将
Lv1
远书归梦两悠悠,只有空床敌素秋。
文章
4
粉丝
0
获赞
0