debug作用
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。
作为一个程序员,Debug
调试技能是必不可少的,正好Android Studio
也为我们提供了强大的Debug
功能。所以我们今天就来好好学习一下AS
为我们提供的调试功能。
单步调试区
-
辅助模式:Show Execution Point(快捷:Alt+F10)
(1)点击按钮会,图标将定位到正在调试的光标位置.
-
Stem Over步过 (快捷:F8)
(1)一步一步的往下往下执行,如果有一行有方法了,则不会进入方法. (2)常用于调试过程中不想进入调用方法情况.
-
Step Into步入(快捷:F6)
(1)一步一步往下走,如果这一步有方法则进入方法内部.
(2)一般进入自定义方法中,不会进入官方类库方法.
-
Force Step Into 强制步入(快捷:Alt+Shift+F7)
(1)可以进入官方类库.
(2)帮助我们学习和查看JDK源码.
-
Setp Out步出(快捷:F7)
(1)从方法内退出到方法调用处.
(2)调试时,有时候,调到不想查看的方法体,这时候可以使用步出.
-
Drop Frame回退断点
(1)则返回到当前方法被调用处,并且所有上下文变量的值也恢复到该方法未执行时的状前的调用处. (2)当想重新调用方法体在执行时,不用重新启用Debug,可以使用回退方式执行.
-
### Run to Cursor运行到光标处(快捷:Ctrl+R)
(1)使程序运行到光标处,而程序不需要断点. (2)假如我们现在在第8行有断点,第10行有断点,目前程序停留在第8行断点上,我们将光标定位到第9行,单击该按钮,程序将跑到第9行.
- ###Evaluate expression计算表达方式(快捷:Ctrl+U) (1)设置变量,在计算机表达式的框里,可以改变变量的值,这样就可以方便去调试其他值的情况。
断点管理区
-
Return(重新运行)
(1)点击该按钮会停止目前的应用,并且重新启动.换言之,就是你想要重新调试时,可以使用该操作,嗯,就是重新来过的意思.
-
Resume Program(恢复程序)
(1)跳转到下一个断点处,可以理解为下一个断点;如果没有断点,则运行结束;
3.### Stop(停止) (1)结束调试,结束运行。
-
View BreakPoints(查看断点)
单击该按钮将会进入断点管理页面,在这里你可以查看所有断点,管理或者配置断点的行为,如:删除,修改属性信息等...
-
Mute BreakPoints(静止断点)
(1)该按钮用来禁用/启动所有断点,假如我们在某个断点处得到了我们想要的结果,并不想看其他后续断点可以点击该按钮禁用所有断点,然后程序会正常执行结束。
断点分类:
- 条件断点 (1)右键单击断点处,可以进入断点的条件。 (2)通过断点条件,满足断点条件时,才停在断点处,否则直接运行。
- 多线程调试 (1)多线程调试,需要挂起级别为Thread。
- 日志断点 调试的时候更多的是打印日志定位异常代码,缩小范围之后再使用断点解决问题;所以经常做的事情就是在代码里面添加日志信息,输出函数参数,返回信息,输出我们感兴趣的变量信息等。但是这样做的问题在于我们需要重新编译运行程序,并且添加了很多无谓的代码且不好管理,这个时候我们可以使用日志断点;该类型的断点不会使程序停下来,而是在输出我们要它输出的日志信息,然后继续执行。
- 异常断点
在有些情况下,我们只对某些特定的异常感兴趣,或者我们只对异常感兴趣;我们希望只要程序发生异常程序就能断下来;这好像保存现场一样,这样就会留下的线索比较多,可以使我们快速的找到问题得根源。
首先我们添加一个异常断点,单击: