IDEA DeBug技巧

在idea的这个界面就是Debug界面,可以通过Alt+5快捷键进入

先介绍一下这几个按钮的作用

第一个按钮——显示执行点(Show Execution Point)  

作用是跳到当前DeBug的位置,无论你在哪个界面。

——————————————————分割线——————————————————————

第二个按钮——跨过(Step Over)  

按钮会逐行执行代码,不过遇到方法不会进入直接执行下一行。

 

——————————————————分割线——————————————————————

 

第三个按钮——跨入(Step Into)

逐行执行代码,不过遇到非Java类库的方法会进入方法体中执行。

——————————————————分割线——————————————————————

第四个按钮——强行跨入(Force Step Into)

逐行执行代码,不过会进入所有的方法体中执行。

——————————————————分割线——————————————————————

第五个按钮——步出(Step Out)

之前三个都可以理解位是步入,这里是步出,每次点击会回到上次调用的地方的结束。

——————————————————分割线——————————————————————

 第五个按钮——回退到上一步(Drop Frame)

此按钮比较复杂,简单的说是退出当前的方法,然后回到上一步的开始,此时你点击进入下一步会重复执行

 此代码答应的过程是这样的,第一行test01()为18行输出,第二行1为19行输出,此时在20行的位置,如果在这里点击Drop Frame按钮,会回到第11行,再次点击 Step Into 步入按钮会再次进入第18行,输出第三行的test01(),然后第19行代码输出第四行的1,第20行会执行修改值,进入第21行代码——return,此时点击Drop Frame按钮,又会会回到第11行,点击 Step Into进入18行,输出第五行的“test01()”,进入19行输出的结果是控制台第六行的2。

 这里红色的文字为控制台的行数,橙色的文字是代码的行数。

此结果可以说明,Drop Frame按钮只会把DeBug的一个执行顺序发生改变,但是具体的值不会因为退回而退回,修改了就是修改了!!!

——————————————————分割线——————————————————————

 第六个按钮——运行到光标处(Run to Cursor)

就是字面意思的运行代码到光标所在位置。

——————————————————分割线——————————————————————

 第七个按钮——求值表达式(Evaluate Expression)

会弹出Evaluate窗口,该窗口可以输入你程序中的一个方法,然后根据你传入的值直接返回出一个结果。

比如这样:

你甚至可以这样:

 获取当前这个对象的值作为参数传入,无论这个方法你是否调用过。

——————————————————分割线——————————————————————

 第八个按钮——跟踪当前流链( Trace Current Stream Chain)

最后这个按钮是用于Java1.8新特性的Stream流的一个可视化界面,有了它你可以更清楚的看出流的走向。

 

 竖排的按钮比较好理解

第一个是重新启动在这个项目。

第二个是将当前debug位置进入到下一个断点处。

第三个是暂停。

第四个是终止服务。

第五个会弹出断点界面。

第六个是忽略所有的断点(就当没打过)。

——————————————————分割线——————————————————————

 这里有三个下拉框,第一个是展示所有的断点信息。

第二个和第三个分别是遇到Java Exception和JavaScript Exception是会自动增加断点,这个功能非常好用,使用方法为在左上角的+号按钮点击

选择Java Exception

可以找到你需要添加的Exception信息,也可以是自定的异常。新增后 

进行勾选,当你出现这个异常的时候就会自动断点了,你也可以勾选Any Exception发生任何异常都会自动断点。

——————————————————分割线——————————————————————

任意的断点都可以点击右键

 可以选择是线程模式还是所有的。

如果你的这段debug代码中存在多线程的情况,你可以在

DeBug的这个界面选择当前线程位置,确保优先执行某个线程的代码。

后面的这个Condition是条件,比如你一个多层循环想要当i=固定值,的情况下才进入断点就可以在这里输入i=你要的值。确保在指定情况下进入断点。

——————————————————分割线——————————————————————

此处Variables 变量区 可以看到变量演变 ,你可以通过加号按钮,添加你要观察的变量,也可以是这个变量的一个属性

你可以通过右键这里 

 set value修改它的值,这个修改只作用在本次debug中,下次重新debug还是会按代码逻辑进行。

好,我说完了。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值