今天学习了idea的debug断点调试技巧,把一些学习的要点记录下来。
基本认识
为什么我们需要断点调试?
因为我们在写好程序后或者查看他人代码时,需要分析程序的运行步骤,了解其中某个方法是如何运行的或者某个变量的值是如何改变的,此时就需要断点调试。
断点调试的方式可以用来可以让程序中断在你需要的地方,从而极大的方便分析代码运行时状态。
调试前准备
要进入断点调试状态,首先我们需要在想要让程序中断的地方打上断点,在IDEA中该操作就是在代码左边的行号处点击即可,会出现红色的点,那就是一个断点,可以打多个,取决于自己的需求。
然后,我们需要将程序以debug
的模式启动起来。程序启动完毕,此时,程序到自动运行到第一个断点处。接下来就可以调试了。
下图中,数字 1 处是表示以 debug
模式启动程序,数字 2 处是表示打上一个断点。
主要的调试按钮
从左往右依次是:
- 查看执行点:show execution point + 快捷键: Alt+F10
- 步过:step over + 快捷键: F8
- 步入:step into + 快捷键: F7
- 强制步入:force step into + 快捷键: Alt+Shift+F7
- 步出:step out+ 快捷键: Shift+F8
- 回到方法调用处:Drop frame+ 快捷键:无
- 运行指定光标处:Run to Cursor+ 快捷键: Alt+F9
- 评估表达式:Evaluate Expression+ 快捷键: Alt+F8
查看执行点(show execution point)
快捷键: Alt+F10
作用:准确定位到目前正在调试的一行代码。
使用场景:debug
时,当我们在不同界面之间跳转时,如果忘记了自己调试到哪一步了,可以点击这个按钮。它会准确的定位到正在调试的那一行。
步过(step over)
快捷键: F8
作用:直接跳过运行下一行代码,不会进入方法体,包括自己定义的方法和JDK源码方法。
使用场景:当你不想要进入方法体时,可以使用该按钮。
步入(step into)
快捷键: F7
作用:进入自己定义的方法体,但是不能进入JDK
源码方法。
使用场景:当你想要查看方法体里面具体运行过程时,可以使用该按钮。
强制步入(force step into)
快捷键: Alt+Shift+F7
作用:可以进入JDK
源码。
使用场景:当你想要跟踪查看源码方法时,可以使用该按钮强制进入源码中的方法。
步出(step out)
快捷键: Shift+F8
作用:跳出方法。
使用场景:当我们进入方法后,不想要继续一步一步的查看后面的流程时,可以点击该按钮直接跳出该方法。
回到方法调用处(Drop frame)
快捷键:无
作用:回到调用这个方法的地方。
使用场景:当我们进入到一个方法后,有某个变量我们忘记了是怎么定义的或者对这个变量的作用不是特别理解,那么此时我们可以使用该按钮,返回到方法调用处重新查看。
运行指定光标处(Run to Cursor)
快捷键: Alt+F9
作用:直接运行到光标所在位置,跳过不想看的一些代码。
使用场景:当你在调试一段代码时,其中有一段代码不想看,但是在后面想看的地方没有打断点。此时,你就可以把光标放在你想看的那一行,然后点击该按钮,程序就会运行到你光标所在位置。
评估表达式(Evaluate Expression)
快捷键: Alt+F8
作用:设置变量值,方便查看不同的值带来的不同运行结果,而不需要每次在程序中重新赋值,又得重新启动。
使用场景:有时,你想要测试一个对象各种不同的变量值,那么你可以使用这个按钮。点击该按钮后,会有一个弹框出现,你可以在输入框输入你想要执行的变量值,点击框框右下的Evaluate按钮,框框中间就会有相对应的结果出现。程序在继续运行的时候,也会用你设置的值运行。
总结
以上就是断点调试需要使用到的一些按钮。
平常在写完程序后,可以多使用调试模式检验代码运行结果的正确性。
只有多练习才能更好地体会和灵活运用这些按钮,发挥出它们最大的作用。