idea 高级调试技巧

在开发项目时,避免不了debug,一般我们常用的也就单步调试等几个简单的功能。其实,idea还有好多高级的调试功能,如果,我们可以很熟悉的利用这些技巧,我们的效率绝对可以做到事半功倍的。

临时断点

临时断点,执行一次就消失了。有些情况下,确实比较好用。

打断点,我们都知道,那临时断点呢?
按住Alt键,再打断点,这样就可以了,是不是优秀

【尴尬笑】

来张图,感受下两种断点的区别。圈起来的就是临时断点啦。

临时断点

条件断点

有没有在调试for循环的时候,出现过这种情况呢?

调试中.
i = 0
i = 1
i = 2

i = 10
矮油,我要看i=9的情况啊…展示哥手速的时候到啦,再来一次。。。。

现在,我们只需要在断点上,点击右键,在Condition那里,设置我们需要的值,循环就会自动停到我们设置的那个值那里,是不是很激动。

条件断点

强制返回

在某些场景下,我们需要测试不同的情况下,我们程序都是老老实实的呢。

不就是不断的修改代码的状态来验证么,小意思…直到有一次,上线时,代码好像没有改回来。。。翻车啦
在这里插入图片描述

现在,我们可以通过Force Return(强制返回) 来强制返回不同的情况,以达到测试的效果,还不用修改代码。终于,可以愉快的玩耍了。

看下怎么执行Force Return
在这里插入图片描述

最后看下效果,通过isTrue()方法,返回不同的返回值来调试我们的程序。
效果

返回上一步

你有没有在调试的时候,碰到过这种情况,好不容易debug到我们要查看的地方,结果,一个不小心,手又快了,又的从头跑一遍。
在这里插入图片描述

现在,我们可以利用Drop Frame来返回上一步,是不是又可以愉快的玩耍了。
在这里插入图片描述

大写的注意:已经改变的变量值不会恢复。

添加/修改数据或查看变量的值

有没有遇到过,在打开debug之后,突然发现,少写了一些代码。然后,加上,重新debug,跑完,去掉的呢。

我们可以利用evaluate Expression来查看变量的属性,或者是给变量改变属性。

修改数据

数量放到变量的上面,点击➕号,在变量上面右键–setValue,修改值后,就可以按照我们的测试意愿来执行了。
点击加号,修改值

setValue改变值

强制抛出异常

有的时候,我们想看看我们的程序是否健壮,会模拟异常,然后,看下是否如我们想的一样()。但是,每次调试都需要我们手动的添加,然后异常,我们自己造的异常。假如,有一天,我们忘记了移除【黑天】

现在,我们不用担心了,idea可以帮助我们强制抛出异常,是不是很兴奋。
https://www.jetbrains.com/help/idea/altering-the-program-s-execution-flow.html#throw_exception

多线程调试

之前,在多线程调试的时候,我们无法控制线程的执行顺序,这是非常头疼的【头疼,肿么调】,
后来发现,idea可以手动设置线程的执行顺序,是不是欢喜。

看下,最后调试的效果
效果图
右击断点。选中suspend+Thread。
然后,进入断点后,我们就可以切换到我们想要执行的线程上就可以了

远程调试

https://blog.csdn.net/kingdelee/article/details/83034876
https://www.jetbrains.com/help/idea/debugging-code.html#d181035e408

对于IDEA来说,只需要在Run->Edit Configuration里,增加一个Remote,设置主机Host和端口Port,然后调试它即可。

jetbrain
https://www.jetbrains.com/help/idea/tutorial-java-debugging-deep-dive.html

未完待续…

你可能感兴趣的:(技巧)