一篇文章让你弄懂Android Debug调试

疫情的特殊时期,但愿你们注意安全,武汉加油。文章主要是记录,同时能帮助还不明白的同窗安全

1、打上断点,启动debug模式

首先在咱们须要打断点的代码行数上稍微偏右,点击鼠标左键,如图:测试


点击小爬虫按钮,启动debug模式。


运行成功后以下。能够看到红色框内,从下往上的顺序运行方法,一直阻塞在咱们打断点的方法里;绿色款内,则是展现目前阻塞方法内变量和参数的数值。


2、接下来,咱们一块儿分解debug的每一个按钮操做

2.一、Step Over(F8)

这个按钮的意思:程序向下一步执行,可是要注意,这个按钮不会主动进入方法体内,而是会直接运行完整个方法后直接运行下一步。
例如:我当前运行的debug,若是一直点击这个按钮的话,他会在onCreate()方法内,执行完add(),再执行完sub(),而后直接结束,并不会进add和sub方法内去打印。

debug

2.二、Step Into(F7)

这个按钮的意思:程序向下一步执行,和Step Over的区别是若是该行有方法调用且为自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。
例如:我当前运行的debug,若是你想进入到add()方法里,那么点击Step Into。假如个人add()方法里,还调用了其余的自定义方法,若是此时你都想进入各个方法查看则继续用Step Into,假如你只想停留在add()方法里,其余方法只须要获得个返回值的话,这个时候应该用Step Over;

2.三、Force Step Into

从字面意思上你也能看得出来:能够进入包括官方类库在内的任何方法。通常我认为这个比较适合研究源码。

2.四、Step out

假如此时调试在add()方法里,若是咱们以为add()方法没有问题,想跳出这个方法继续debug其余断点时,那么点击Step out,跳出该方法。

2.五、Run to Cursor

从字面意思上看,他是移动到下个断点的意思。通过测试以下:

一、假如在咱们当前运行的debug,若是还在onCreate()方法内,当前断点在add()方法时,点击Run to Cursor,断点确实会移动到下个断点停留在sub()方法。3d

二、若是此时咱们已经进入到add()方法体内,点击Run to Cursor,咱们会看到,他只是运行完一次for循环后,继续堵塞。以下图:调试

因此我总结为,Run to Cursor是在当前方法体内,运行到下一个断点。(若是有误,请大佬及时纠正);

那么此时,若是咱们已经在add()方法内,就是想直接运行到下个断点sub()上,怎么操做呢?点击Resume Program cdn

这个按钮不会管你在不在方法内,直接回到下一步断点上。

3、Debug进阶用法。

3.一、Watches

若是咱们在debug的时候,可能会出现不少变量,而咱们就想观察那么几个变量。咱们能够把他加到watches里。好比我add()方法里的变量i,blog

方法1:在咱们观察的Variables里,找到那个变量右键,选择Add to Watches事件

方法2:在咱们的Watches界面,点击+号,在输入框内,输入i,进行搜索,也能添加到Watches,方便咱们debug调试开发

3.二、Set Value

好比在咱们的add()方法里,有一个for循环,正常调试是每次都会从i=0的时候进行调试,若是咱们想直接从i=5的时候进行调试,那么咱们能够在Variables界面,找到那个变量值,右键选择Set Value后,输入咱们5,就能跳过前几回循环。 源码

3.三、查看全部断点

开发中你打了不少断点忘记取消的状况下,你能够点击View Breakpoints查看全部断点

打开以下界面:

3.四、中止debug调试

3.五、已经运行的程序,避免从新运行程序的状况下,怎么添加debug调试。

这里多说几句,由于是在已经运行的程序上,添加debug调试,那么好比进入一个页面,onCreate()方法里的代码,都已经所有执行完了,好比咱们点击一个按钮,须要运行的方法,在这个方法里咱们才能添加debug调试。好比首先是一个正常运行的程序,咱们给点击事件里加断点。

而后,点击Attach Debugger to Android Process

弹出以下页面,点击OK就好了,点击按钮就能进行debug调试了


想和我一块儿成长吗?请关注个人公众号

相关文章
相关标签/搜索