IDEA debug常用键
左侧功能键
先来了解Debug栏中位于左侧的主要的5个功能键
。
-
第一个,
有返回箭头的按钮
,功能是重新运行Debug
。一般不用。 -
第二个,一个
竖杠加向右的三角形的按钮
,功能是跳到下一次断点执行
,两个断点之间的代码都被加载执行过了。
但是当一个断点在一个for循环中,如果循环有n(n>=1)次,for循环外有一个断点,此时该功能是跳过一次for循环,并不是跳过所有循环而直接到下一个断点,那么如果先要跳过所有循环可以将断点暂时不启用,也就是将enabled去掉,因为enable是启用断点的意思。 -
第三个,一个
红色的正方块的按钮
,功能是结束Debug
的执行。按下之后,整个Debug调试都会将结束并停止执行。 -
第四个,
两个重叠的红色圆圈的按钮
,功能是查看所有的断点
。快捷键是(shift + ctrl + F8),至于它的用法在上面将给断点添加条件时已讲述。 -
第五个,
一个红色的圆圈中有一个灰色的斜杠的按钮
,功能是隐藏所有的Debug断点
。用途就是,当你在Debug调试时,你觉得此时已经没有问题了,这时可以暂时隐藏所有Debug断点,无障碍运行一次,如果有问题还要取消隐藏,不至于重新打开Debug。
右侧功能键
-
按钮1,功能是
将你的光标移动到当前代码所执行处
,不管此刻你的鼠标光标的位置在哪里。 -
按钮2,功能是
单步跳入
。Debug调试是一行一行的执行下去,但是如果遇到调用方法时,是不会进入方法里面的。 -
按钮3与按钮4,因为功能相似,放在一起讲。两个的功能都是单步进入的执行,
但唯一的区别是:
蓝色向下箭头
的按钮遇到方法时,只有当经过的方法是用户自定义的方法才会跳进去
,如果是系统自定的方法则不会跳进去。
而红色向下箭头
的按钮,不管是系统自定义的方法还是用户自定义的方法都会跳入到方法里面去执行
。 -
按钮5,功能是
单步跳出
。可以跳出进入的方法。 -
按钮6,功能是
从当前执行的位置直接执行到用户指定鼠标光标的位置
。
回到"上一步"
该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道该技巧,只能再跑一遍。
老版本的idea:drop frame 即扔掉当前运行的栈帧,这样当前“指针”的位置,就自然到了上一帧的位置。
新版idea已经没有上面的drop frame按键了。取而代之的是栈帧前面的回退按钮,叫做Reset Frame 即重置栈帧。含义很好理解,栈帧即方法,重置栈帧代表回到上一个栈帧(即上一个方法)。
Frame 帧
条件断点
循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。
参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置
多线程调试
多线程同时运行时,谁先执行,谁后执行,完全是看CPU心情的,无法控制先后,运行时可能没什么问题,但是调试时就比较麻烦了,最明显的就是断点乱跳,一会儿停这个线程,一会儿停在另一个线程,比如下图:
如果想希望下一个断点位置是第2句诗句,可能要失望了。
如果想让线程在调试时,想按自己的愿意来,让它停在哪个线程就停在哪个线程,可以在图中3个断点的小红点上右击,
即:Suspend挂起的条件是按每个线程来,而非All。
临时执行表达式/修改变量的运行值
调试时,可以临时执行一些表达式,参考下图:
set value 可以直接修改变量值。
IDEA远程debuge
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/caoli201314/article/details/117914896
添加远程DEBUG配置项,Host
和Port
,配置后,点击Apply和OK按钮