DEBUG 哪些事儿

今天我们聊聊日常开发中常用的 debug 功能

本文的环境:
操作系统:  windows 10
IDE:      idea 2020.3

1 简介

clipboard.png

1 以 DEBUG 模式启动

2 设置断点,也可以通过 Ctrl + F8 快捷键来设置/取消

3 8个调试按钮,后面会一一介绍

4 服务按钮,可以关闭/启动服务,设置断点,放行等

5 方法调用栈,这里显示了该线程调试所经过的所有方法,勾选右上角的[Show All Frames]按钮,就不会显示其它类库的方法了,否则这里会有一大堆的方法。

6 variables ,变量区,可以查看当前断点之前的当前方法内的变量

7 watches ,观察变量的实时变化情况

2 8个调试按钮

clipboard.png

1 Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。

扫描二维码关注公众号,回复: 14407401 查看本文章

2 Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。

3 Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。

4 Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。

5 Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。

6 Drop Frame (默认无):回退断点,后面详细说明。

7 Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。

8 Evaluate Expression (Alt + F8):计算表达式,后面会详细说明。

3 服务按钮

clipboard.png

1 rerun 重新启动程序

2 Resume Program (F9):恢复程序,跳过当前断点,继续运行

3 Pause Program:暂停程序,启用Debug。目前没发现具体用法。

4 Stop 'xxx' (Ctrl + F2):连续按两下,关闭程序。

5 View Breakpoints (Ctrl + Shift + F8):查看所有断点,后面会涉及到。

6 Mute Breakpoints:使断点生效/失效,选择这个后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。

4 计算表达式

即 2 中的第八个按钮

clipboard.png

  • 两个功能
    • 动态获取变量或参数的值,也可以是方法的值
    • 设置变量值,可以改变变量的值,方便我们调试不同值的情况

5 设置断点条件

通常,当我们在遍历一个比较大的集合或数组时,在循环内设置了一个断点,难道我们要一个一个去看变量的值?那肯定很累,说不定你还错过这个值得重新来一次。

clipboard.png

右键断点。

clipboard.png

或者在 3 中的 view breakpoints 中设置,还能将断点行以日志形式输出到控制台

6 多线程调试

IDEA在Debug时默认阻塞级别是ALL,会阻塞其它线程,只有在当前调试线程走完时才会走其它线程。可以在View Breakpoints里选择Thread

clipboard.png

具体作用可以参考我的另一篇文章中踩到的坑

juejin.cn/post/709628…

7 回退断点

  • 回退的方式有两种
    • 一种是Drop Frame按钮,按调用的方法逐步回退,包括三方类库的其它方法。
    • 第二种方式,在调用栈方法上选择要回退的方法,右键选择Drop Frame,回退到该方法的上一个方法调用处,此时再按F9(Resume Program),可以看到程序进入到该方法的断点处了。

猜你喜欢

转载自juejin.im/post/7124923048645705736