android studio 断点调试
-
断点调试的启动方式
android studio启动断点调试的方法有两种,其一是下好断点,然后点击以Debug的形式编译运行程序。
第二种方式是在程序运行中启动断点调试。方式:启动app后,点击RUN—>,弹出如下的提示框:
在需要的地方打断点,条件出发后就可以直接进入调试模式。
断点调试的基本操作
第一个为step over,点击该按钮程序执行下一行,如果当前行为方法调用,这个方法将会被直接执行完毕,然后进行下一行,不会进入方法内。
第二位step into 点击这个按钮时,如果当前代码为自定义方法,程序会进入方法内逐步运行,但不会进入官方库提供的方法内部。否则将进行运行至下一行
第三位force step into 该按钮与第二位相似,不同的是,点击此按钮会进入任何方法内部。该功能会使你脱离当前的断点,而是从你选择的方法开始时进行调试。
第四位step out 该按钮会快速运行完该方法,跳出当前执行的方法内部,达到该方法调用的下一句。
第五位drop frame.该按钮会使你回到调用该方法的开始处,让你继续调试。此方法与step out的不同之处为,step out会运行完通过step into跳入的方法,数据改变,而drop frame 会跳到该方法调用的开始处,恢复原始初始值,可以重新运行该方法。
第六位run to cursor 该按钮会使程序跳转至下一断点处。当设有多个断点时逐句运行会很麻烦,可以通过该功能快速跳转至下一断点。
第七位Evaluate expression。当程序运行到某一个断点的时候,恰好你对该处的某对象的某些属性很感兴趣,那么可以通过该按钮跳出
Evaluate expression窗口,在该窗口处可以输入你感兴趣的表达式,然后点击evaluate按钮,你就可以得到想要知道的结果了了。如图所示
条件断点
当你的断点在一个循环里的时候,而你又只对其中的某个元素感兴趣,逐步调试会变得很麻烦,这个时候条件断点可以极大的提高效率。条件断点是指当程序运行满足你指定的条件时,程序才会断下来,使用方法也非常简单,在你的断点处右键会弹出下面的小窗口,写上你的条件即可
-
日志断点
该断点并不能算真正意义上的断点,因为日志断点并没有是程序断下来,而是在你需要的地方输出你需要的信息。这种断点像log一样快速的输出你所需要的信息,从而判断问题出错的地方。使用方式类似条件断点,在断点处右键弹出如图所示的窗口,在红色标注框一的“suspend”处取消选中,红色框二处输入你感性兴趣的日志信息。图二为运行结果
-
方法断点
如果我们只想知道方法调用时的参数或者返回的结果,而对方法的运行的过程并不感兴趣的时候,方法断点是非常明智的选择。我们只需要在感兴趣的方法的第一行答上断点即可。如图所示你会发现该断点图标的不同之处
-
Field WatchPoint
当你需要监测某个变量的变化时,这种断点方式可以有效的帮助你。断点的方式和方法断点相似,你只需要在该变量命名的地方打上断点,断点的图标也会稍有不同。右键该断点可以设置一些属性,比如你是要在变量访问的时候停下来还是在变量改变的时候停下来。
-
异常断点(Exception Breakpoint)
如果你对程序发生的异常感兴趣,Exception Breakpoint是非常不错的选择,当程序运行发生异常时,直接让程序停下来,保留事故发生的现场,你可以即使有效的发现问题的原因以及异常发生的位置。使用方式:进入RUN—>View BreakPoints,弹出如下窗口:
点击左上角的加号,弹出如下窗口,选择第三个
在下面的窗口输入你感兴趣的异常信息即可。当程序发生该异常时就会自动断下来。
-
设置变量的值
在调试过程中,你发现某个变量的值跟你预期的结果不一样,或者你怀疑某变量这出现某些特殊值时程序会发生崩溃,而当前测试环境又极难模拟这种情况,那么你可以在调试模式时,如图所示,在变量区右键你想监控的变量,设置你想要出现的值,然后继续运行。
android studio提供的调试手段远不止这些,需要在开发过程中逐步去发现探索。
参考: