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

一、多线程调试断点

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 窗口中输出。

原文地址:https://www.cnblogs.com/eamonzzz/p/11639416.html

时间: 2024-10-25 20:55:48

你不知道的 IDEA Debug调试小技巧的相关文章

<python>If 语句、while语句的规则和调试小技巧

If 语句的规则 1. 每一个“if 语句”必须包含一个 else. 2. 如果这个 else 永远都不应该被执行到,因为它本身没有任何意义,那你必须在 else 语句后面 使用一个叫做 die 的函数,让它打印出错误信息并且死给你看,这和上一节的习题类似,这样你 可以找到很多的错误. 3. “if 语句”的嵌套不要超过 2 层,最好尽量保持只有 1 层. 这意味着如果你在 if 里边又有了 一个 if,那你就需要把第二个 if 移到另一个函数里面. 4. 将“if 语句”当做段落来对待,其中的

JavaScript的兼容小坑和调试小技巧

JavaScript作为一种弱类型编程语言,入门简单,只要稍微注意一下IE方面的兼容性,就可以很好的使用它. 本文主要是对IE兼容的小坑和调试的小技巧进行举例分析,并给出解决方法. 1.var str: 与 var str = "":的区别 1 <script> 2 var Str1; 3 for (var i = 0; i < 3; i++) 4 { Str1 += "xxx" } 5 alert(Str1); 6 var Str2 = &quo

【调试】Visual Studio 调试小技巧(2)-从查看窗口得到更多信息(转载)

在使用Visual Studio开发调试程序时,我们经常需要打开查看窗口(Watch)来分析变量.有时在查看窗口显示的内容不是很直观.为了能从查看窗口的变量中得到更多的信息,我们需要一些小的技巧.下面是几个例子. 1. Windows消息 在开发调试界面程序时,我们经常需要查看消息的内容.当在查看窗口中,仅仅只显示出消息对应的整数值,我们并不能直观地知道究竟是什么消息.比如: 为了能让查看窗口显示出消息内容,我们只需要在变量名添加“, wm”的格式化后缀,就能显示消息的名字: 2. 句柄返回值

Firebug折腾记_(2)HTML&amp;CSS定位及调试小技巧

题外话 传统的开发我们是在编辑器操作代码保存,再到浏览器预览查看效果的; 而如今的firebug和chrome的内置调试器就不需要了..可以直接实时编辑且看到效果; 在调试中对代码的操作不会保存到本地实际代码中..是不是很赞!!; 定位HTML元素的三种方式 进入调试工具界面,按下"瓢虫"旁边的小鼠标,再进行网页元素的选择 默认快捷键,Ctrl + shift + C 鼠标移动到网页的某一块元素,鼠标右键,使用Firebug查看元素 HTML及CSS简单调试 ##HTML元素编辑 除了

Jmeter脚本调试小技巧

使用Jmeter开发脚本时,在使用前置或后置处理器进行关联时,难免需要调试,这时可以使用Jmeter的Debug Sampler,示例如下: 第一步:设置后置处理器及需要提取的动态值 1.添加一个http sampler,访问:www.baidu.com; 2.给这个sampler添加一个后置处理器--Regular Expression Extractor,内容如下图: 第二步:提取第一步中后置处理器设置的值 1.在Thread Group下,添加一个Debug Sampler 2.设置Deb

调试小技巧

谷歌浏览器devtools 中的调试技巧 Ruby代码调试 如果不小心敲错了 ruby 代码,比如 create.js.erb中把?render?写成了?rennder?那么点击"发布评论"按钮是看不到报错信息的. 可以打开 devtools -> console ,这里可以看到一个 500 的错误.具体的错误内容可以到 network 下面,再次提交以下评论,就能看到了. 那么不知道错误信息,我们肯定很难修改,于是我们到如下位置查看错误信息: 如上是查看错误类型,那么具体的错误

CSS调试小技巧 —— 调试DOM元素hover,focus,actived的样式

最近学习html5和一些UI框架,接触css比较多,就来跟大家分享一下css中的一些调试技巧.之前做页面,css都是自己写的,所以要改哪里可以很快的找到,现在使用了UI框架,里面的样式是不可能读完的,所以就要通过调试来找到要修改的地方. 在调试CSS的时候,我们一般使用Chrome.Firefox.IE等浏览器自带的工具,快捷键都为F12.但是,我们要调试如hover的样式时,鼠标放上去才会显示,鼠标一走就看不到了,没办法看清楚css样式,还有就是浏览器自带的一些hover.foucs.acti

C语言调试小技巧

经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的优化后,会变得"难以辨认",使用调试器也变得有些头疼.先举个简单的例子: 1 #include <stdio.h> 2 3 int main(){ 4 int a[6], i, sum = 0; 5 for(i = 0; i<6; i++) 6 a[i] = i<<2; 7 a[3

Android——安卓调试小技巧(一)

在我们做完一个Activity之后,总是要看下效果才放心,但是面对虚拟器的启动慢,反应慢的两个痛点,我们总要寻找别的方法. 1,copy生成的APK文件安装 在我们选择Run As之后,会在bin文件夹下生产一个app的apk文件,我们可以拷贝出来,在未发布到google之前,发给测试人员使用. 或者是: 在这个apk文件上右键选择打开,之后会启用我电脑上默认的应用安装器(建议大家都在电脑上安装一个应用安装器),通过USB线安装到手机上.前提是,手机开启了调试模式. 2,DDMS+真机 玩儿过P