IDEA断点调试
断点的概念
debug模式离不开断点(breakpoint),断点是能够程序中断执行的点
设置断点后,当程序以debug
模式运行时,就可以利用断点来使程序在某个地方暂停执行,方便开发人员调试和排错
当以debug模式运行程序时,会停在第一个断点所在行(该行还没有被执行!)
如何添加或设置一个断点
直接在想要打断点的行的行号区域单击即可(也可以使用快捷键Ctrl+F8)
断点可以在debug过程中动态设置哦
断点的分类
断点 | 描述 |
---|---|
源断点 | 黄色圆点,可以直接设置断点属性(Shift+单击) |
行断点 | 是最常用、最普遍的断点 |
方法断点 | 在方法执行前和执行完毕处各打一个断点 |
字段断点 | 监控某个字段(属性)值的变化 |
异常断点 | 在程序出现指定异常时,引发异常的行打一个断点 |
断点调试按钮/命令
先认识一下debug断点调试面板:
单步调试
序号 | 按钮 | 描述 |
---|---|---|
1 | step over | 程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行) |
2 | step into | 程序向下执行一行(如果该行有自定义方法的调用,则运行进入自定义方法,注意不会进入JDK官方类库的方法) |
3 | force step into | 程序向下执行一行(如果当前行有方法调用,则强制进入该方法中,无论该方法是自定义方法还是JDK类库中的方法) |
4 | step out | 跳出当前方法,返回到方法调用处的下一行(该方法将会被执行完毕) |
5 | run to cursor | 回到当前断点并继续执行到下一个断点处。有的说是运行到光标所在处 |
5 | evaluate expression | 计算表达式的值,实际表现为给一个方法传参,然后获取返回值 |
6 | drop frame | 回退到当前方法调用行 |
7 | show excution point | 回到执行到的断点处 |
实际测试发现,当前行有方法调用,并且调用的方法中设置了断点,step over命令也会进入到方法体内断点处。(很简单,因为方法体内有断点,step over就无法一步执行完方法调用了)
多步调试
序号 | 按钮 | 描述 |
---|---|---|
1 | rerun | 重新以debug模式运行程序 |
2 | modify run configuration | debug运行设置 |
3 | resume program | (恢复程序)运行程序到下一个断点 |
4 | pause program | 暂停程序,一般不会用到 |
5 | stop | 停止debug程序的运行 |
6 | view breakpoints | 查看当前程序设置的所有断点,进一步地,可以设置断点出现的条件等断点属性 |
7 | mute breakpoints | 使所有断点失效,再次单击可使所有断点生效(当你某次debug程序程序却直接运行完毕,而又确实设置了断点时,检查这个按钮) |
多线程断点调试
利用断点调试,我们可以控制多个线程的执行顺序
断点调试拓展
条件断点
条件断点只有在满足某个条件时才会生效
Variables:在变量区可以查看当前断点之前的当前方法内的变量。
其他
IDEA插件推荐
-
GsonFormat
:根据json格式的数据自动生成实体类中的属性及对应的setter、getter方法(快捷键alt+S) -
Free MyBatis Plugins
:针对mybatis框架,完成Mapper接口和对应Mapper.xml之间的快速跳转 -
RestfulTool
:俗称插件版Postman,对Controller层接口进行管理,发送请求,获得响应数据等 -
SequenceDiagram
:以图形化的形式展示某个方法的调用栈,方便开发者梳理业务逻辑
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 星期天の博客!
评论