1、实战IDEA调试技巧
IDEA的Debug调试面板分为五个部分:
![](https://img-blog.csdnimg.cn/20200409092707308.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMDM4NTY1,size_16,color_FFFFFF,t_70#pic_center)
1.1单步跟踪
- 快速定位到当前调试器正在执行的代码行:show Execution Point
- 单步命令,每一次执行一行代码,如果该行有方法会直接跳过:step over
- step over会跳过方法的执行,如果要进入方法里边,需要用:step in,但是step in会跳过jdk自带的系统方法,如果要跟踪系统方法的执行细节,需要用:force step in
- 关于单步执行忽略哪些系统方法可以在Settings ->Build,Execution,Deployment->Debugger-Stepping中进行配置
- 如果发现不想继续调试方法,可以直接把这个方法执行完,回到方法调用的下一行:step out
- 如果要回到调用方法的地方,重新再次调试该方法:drop to frame
- 直接使用该命令执行到某行:run to cursor/ force run to cursor
1.2断点管理
可以将断点分成两种类型:行断点指是在特定的某行代码上暂停下来,而全局断点是在某个条件满足时停下来,并不限停在固定的某一行,譬如出现异常时暂停程序。
- 行断点
suspend(All/Thread)
condition
1.remove once hit
2.instance filters:用于当断点处代码所出的实例和设定ID匹配则断下来
3.class filters
4.pass count:是在断点执行到第几次的时候暂停下来 - 全局断点
1.Exception breakpoints
2.method breakpoints
3.field watchpoints
1.3求值表达式
- 表达式模式
- 代码片段模式
1.4堆栈和线程
一个视图可以查看当前所有线程(线程视图),一个视图可以查看当前的函数堆栈(堆栈视图)