八 强制返回
我们进行debug问题排查,有的时候只是想确认业务逻辑有没有问题,并不想真正去执行一些耗费资源、或者改变数据的操作,那么在这种场景下,我们可以借助于强制返回的功能,不执行方法后面的代码而指定一个返回值来继续后续的业务逻辑debug。
从运行结果可以看得出来,加法的代码逻辑实际并没有执行,而是通过强制返回后直接执行了后面的业务逻辑。
九 运行时修改变量
在debug的过程中,有时候我们需要按照我们预想的逻辑进行问题排查定位,这种场景下我们可能需要修改某些变量的值以便于代码走入不同的预想的业务逻辑。通过Alt + F8快捷键修改获取指定变量的值,右键Set Value设置新的值。
输入新的变量值后进行回车设置,如此变量值被改变了,原先的业务逻辑发在条件发生改变之后也发生了改变。
十 多线程调试
dea默认的Debug模式下会阻塞所有的线程,只有当当前的调试线程逻辑走完之后才会进入其他的线程。那如果想要调试多线程场景下的业务逻辑应该怎么办呢? 实际上在设置断点的时候,鼠标右击断点,我们可以选择Thread调试模式。
这样我们在Debugger中就可以通过切换不同的线程来进行业务逻辑调试。
重用快捷键
- F8:Step Over 程序执行到下一步
- F7:Step Into 进入方法内部
- Alt+Shift+F7:强制进入方法内部,主要针对F7无法进入的方法内部的情况
- Shift+F8:进入方法之后,不希望再一步步执行剩下的代码,可以通过此快捷键跳出
- Alt+F10:如果当前鼠标光标不在代码运行处,通过此快捷键可以将光标回归到代码运行处
- Alt+F9:鼠标光标在何处,可以直接通过此快捷键跳转运行到光标处,无需断点
- Alt+F8:计算表达式的值,用鼠标选择需要计算的表达式之后,通过此快捷键可以计算表达式的值
Ctrl+F5:比如改了某些代码需要重新运行程序,可以使用此快捷键
F9:如果一段代码中打了两个断点,当debug到第一个断点后,按F9后代码运行到第二个断点处,如果再按F9则执行完所有的代码,也就是说如果当前断点后还有断点则可以通过F9跳转,如果没有则执行完代码逻辑。
Ctrl+Shift+F8:查看所有的当前所有的断点