( IDEA version:2018.1x)
标亮处表示设置 Debug 连接方式,默认是 Socket
。Shared memory
是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket
会快点。
Debug 常用快捷键(我常用)
快捷键 | 介绍 |
---|---|
F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 必备 |
F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 必备 |
F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 必备 |
Alt + F8 | 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 必备 |
Ctrl + F8 | 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点 |
Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
Ctrl + Shift + F8 | 在 Debug 模式下,指定断点进入条件 |
Alt + Shift + F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
Drop Frame | 这个不是一个快捷键,而是一个 Debug 面板上的按钮。该按钮可以用来退回到当前停住的断点的上一层方法上,可以让过掉的断点重新来过 |
1:Step Over ,进入下一步,如果是方法,那就直接跳过(F8)
2:Step Into,进入下一步,如果是方法,就进入方法内部,但是不会进入jdk封装的方法。(F7)
3:Force Step Into:强制进入下一步,不管是什么方法,即使是jdk封装的方法,也会进入。(Alt+Shift+F7)
4:Step Out:跳转到下一个断点,没有一直运行到最后。(Shift+F8)
5: Run to Cursor:运行到光标处 (Alt+F9)
Debug 特殊技能使用
查看对象的三种方式:
1:(如图)选中你要查看的对象或属性,之后快捷键ALT+F8 --> Enter 即可查看;
也可以用
2:选中直接拖拽到Watches
3:鼠标悬停2秒过后即可查看;
给断点添加步入条件
1,
比如:我现在想当age大于20时候,断点才进入。然后程序debug模式启动即可。
2,
- 如上图,我们可以给断点设置更复杂的步入条件
- 红框中的 Pass count 表示跳过多少次后开始步入,比如 for 循环中,我们要查看一个变量循环 29次后的结果就可以使用该方式。
- 如上图,对于某些不重要的断点,只要步入一次就够了,就可以勾选此选项,让它步入之后自动删除。
- 如上图,对于某些场景的断点,需要其他断点先触发之后再进行触发,可以选择此项。默认选择的是: None
- 有时候当我们步入方法体之后,还想回退到方法体外。点击如图按钮。
- 如上图左侧红框内容,可以看到当前断点线程执行的堆栈情况,最上面的为当前断点位置,下面的是断点前面执行的方法,如果需要看断点前面走过的路,可以查看该区域。并且可以用图上箭头按钮进行限制显示框架类代码的执行过程,而不是包括依赖 jar 里面的执行过程。
- 如上图右侧红框内容,可以用来展示单点断点位置的内存情况,对于判断内存溢出相关问题很有帮助。
debug异常模拟(借鉴)