写在前面:
idea是java开发主流的ide,debug也是常用的功能,但这个功能有着很多强大好用的技巧。现在来总结一下。
idea是java开发主流的ide,debug也是常用的功能,但这个功能有着很多强大好用的技巧。现在来总结一下。
文章目录
- 条件断点
- 条件的时候求值并记录。
- 命中后移除
- 基础debug
- 简单的介绍
- debug中求值
- 强制返回
- 断点回退
条件断点
从打断点开始
打上断点,这里是执行100次打印需要在50次的时候进行调试
右键旁边的小红点,输入断点条件
运行之间可以到50
条件的时候求值并记录。
如果我们需要在过条件的时候运行代码可以右键小红点更多。
在求值并记录出输入你需要求值的表达式,这个地方的代码实际上会插入到运行代码,也就是说,如果未定义z而之间是z=i+5,则会出现z未定义的报错,但如果是定义了z,运行此刻会改变z的值。
执行结果
但是如果外面定义了z,求值也定义了,则不会修改外面的z。
最后是1
命中后移除
这个在选项有,就是只有第一次断点才行
基础debug
简单的介绍
指令 | 快捷键 | 作用 |
---|---|---|
重新运行 | Ctrl+F5 | 重新运行代码 |
停止代码 | Ctrl+F2 | 停止当前程序 |
恢复程序 | ctrl+f | 不在使用此debug帧而是放行 |
停止程序 | 在代码运行过程中强行停止,相当于在当前运行的位置打上了断点 | |
步过 | F8 | 在当前函数栈中运行,不会进入新的函数 |
步入 | F7 | 会进入新函数 |
步出 | Shift+F8 | 运行出当前函数 |
运行到光标 | Alt+F9 | 会尝试运行到光标出,但是会被断点打断。 |
强制运行 | 不会呗断点打断 |
debug中求值
在开发中,我们有时候需要做格外的需求,需要记录数据进行求值。
也可以调用方法,但是请注意,需要符合java语法要求,此处static的main函数不能之间调用demo,此处也有代码提示。
也可以在这里用
在这里插入图片描述
强制返回
这2个地方都可以,当你不想要代码继续运行的时候可以使用这个。
为什么不直接选择停止demo呢?
在实际使用的时候就会发现,有时候他并没有停止,而是会继续运行一段。但是在向数据库插入等操作有时候运行了会很麻烦。
断点回退
有时候在运行的时候发现过了,不需要重新执行直接回退就行。
点击后发现没有打印,且x还是0