android studio断点调试总结
最近盘点了下关于断点调试,以提高问题调试的效率。
image.png
一、开启调试
第一个图标:代表以debug方式启动运行app,自动进入第一个断点。适合断点调试代码时机比较早的,例如application。
第二个图标:代表在已经运行中的app,即刻断点调试接下来将要执行的代码。较为常用。
二、调试过程
在触发断点的时候,弹出as下方的debug调试区域,默认的设置是自动弹出的:
image.png image.png
Show Execution Point:如果光标在其他页面,将回到代码正在执行的位置行数
image.pngStep Over:按照当前方法内继续往下执行,如果内部还有调用其他方法体,将不会进入。
image.pngStep Into:按照当前方法内继续往下执行,如果内部还有调用其他方法体,将继续进入所调用的方法内。
image.pngForce Step Into:按照当前方法内继续往下执行,如果内部还有调用其他方法体,将继续进入所调用的方法内。区别于“Step Into”,此操作可以进入官方源码内。
image.pngStep Out:一般我会结合“Step Into”使用,退出当前方法内的debug,回到调用者的位置。
image.pngDrop Frame:回退断点,默认好像是置灰的,不可使用,怎样恢复使用?还在了解中。。。
image.pngRun to Cursor :运行断点到指定的光标处,也是实际中比较实用的,例如可以不必在代码最左侧打红点,直接光标移动到需要的地方,方便一次性的调试。
image.pngEvaluate Expression:计算表达式,我们一般可以在Variables中查看变量,但也仅限于一些变量,例如集合、布尔、string,想要查看一些方法的返回值,或者稍复杂一些的计算表达式的结果值,可以借助这个。
使用如下:
在执行到断点时,点击这个上面这个“计算器”的图标,弹出如下对话框
image.png
以上是查看变量的值,也可以进行值的更改,达到修改逻辑的目的。
image.png image.pngResume Program:运行至下一个手动打的断点
image.pngStop:点击一下是结束断点调试,点击两下是结束应用程序
image.pngView Breakpoints:查看所有断点,会有一个专门的对话框弹出
image.pngMute Breakpoints:哑断点,所有断点失效置灰,但是断点位置依然存在,再点击一次反选,断点恢复至可调式的状态。
另外点击断点的右键,可以设置是否执行断点以及执行的条件:
image.png
点击“View Breakpoint”,可以添加异常的断点,使用场景:当发现了一个异常崩溃了,但是最开始又不太确定具体位置,可以使用下面的功能,自动在发生异常的所在行进行断点,就能提高查找问题的效率了,比较实用的
image.png
在查看所有断点的界面中,还可以进行log的打印:
需要取消对Suspend的勾选
image.png
打印的结果如下,在debug的控制台显示:
evaluate and log对应的黄色框的部分,可以自定义输出的语句
Breakpoint hit message 对应蓝色框的部分,无法自定义语句,但是会打印出执行的所在方法名、行数、以及具体那个类
image.png