android studio断点调试 简书,Android studio断点调试

Debug模式和Attach模式的断点调试

开始写一个简单的调试程序,我们先来一个for循环

4ae7ac3d2d7e

image.png

点击debug模式运行

4ae7ac3d2d7e

image.png

查看调试面板

4ae7ac3d2d7e

image.png

一、简单调试

1. step over:一步步往下走

4ae7ac3d2d7e

image.png

当前程序运行的位置,我们看到i的值已经在程序代码中展示出来了,黄色的代码处,这个是AS的功能,对于我们调试来讲,这简直是非常大的福利了。

4ae7ac3d2d7e

image.png

点击单步调试按钮,看看效果

4ae7ac3d2d7e

image.png

我们在切回道Debugger面板,可以看到Variables显示面板中,有i的值是0,selector的值是0。以及我们可以看到Frames控制面板中可以显示出当前程序的位置在:onCreate():28,第28行。

4ae7ac3d2d7e

image.png

2. step into:看到方法往里走

比如我们的for循环当中调用了一个stepNext(int i)方法,当我们走到这里想看看这个方法里面的运行过程的时候我们可以这样,当走到这个方法的时候我们可以按下F7,或者如下图的图标

4ae7ac3d2d7e

image.png

这时就走到了stepNext方法当中。

4ae7ac3d2d7e

image.png

在这里打印了一个log,我们再按一下F8我们来看看Logcat, 这里我打印的log都是为了做教程用,调试我们就不用打log了直接看显示面板就OK了

3. force step into :所有方法看完整

4ae7ac3d2d7e

image.png

4. step out :有断点下一个,走完断点继续走

这里如果我们的一个流程当中,包括调用的方法,如果有断点走到下一个断点,如果没有断点,而是在一个调用的方法当中,会跳出这个方法,继续走。

4ae7ac3d2d7e

image.png

这里理解比较难,举个例子:

4ae7ac3d2d7e

image.png

上图)我现在程序位置在第一个断点位置(24行),我调用的stepNext方法中也有一个断点,此时我按下step out按钮会走到stepNext中的断点处(39行)我此时如果再按一下step out 会走到stepNext方法的调用出的下一个可执行代码(30行)

4ae7ac3d2d7e

image.png

(上图)如果我现在程序位置在stepNext的方法中,如果我此时按下step out,会走到stepNext方法的调用出的下一个可执行代码(30行)

5. run to Cursor :下个断点我们见

4ae7ac3d2d7e

image.png

二、高级调试

1. 跨断点调试

如果我们设置了多个断点,现在我们需要直接跳转到下一个断点,那么直接点击下图就可以了

4ae7ac3d2d7e

image.png

2.观察变量

4ae7ac3d2d7e

image.png

4ae7ac3d2d7e

image.png

如果变量名比较长我们可以这样:

选择[Variables]中的变量名然后点击[右键],选择[Add to Watches],然后Watches面板中就有了

4ae7ac3d2d7e

image.png

3.设置变量的值

在程序中有很多的条件语句和循环语句,调试也是比较耗时的,我们可以通过快速设置变量的值来加快调试速度,我们可以做如下操作:

选择[Variables]中的变量名然后点击[右键],选择[Set Value..]或者选择之后直接F2(如上图)(下图为Variables面板)

4ae7ac3d2d7e

image.png

4.查看断点

4ae7ac3d2d7e

image.png

点击之后我们可以看到所有的断点,以及位置代码,也可以设置一些属性

4ae7ac3d2d7e

image.png

5.停止调试]

要注意的是这里的[停止调试]不是让程序停止,而是跳过所有调试

4ae7ac3d2d7e

image.png

到这里我们的Android Studio的断点调试和高级调试就完毕了。

Attach模式调试

想象一下下面的场景:你的APK如果已经运行在普通模式(非Debug)的情况下,你突然想Debug,而又不想重新运行浪费时间,该怎么办呢?

普通模式下想设置断点进行调试可不可以呢?

当然是可以的,不仅可以,这种方式已经渐渐替代了原先的方案,毕竟很方便,不是吗?那具体要怎么做呢?

一、先设置断点,再正常运行APK

4ae7ac3d2d7e

image.png

二、点击Attach调试

4ae7ac3d2d7e

image.png

或者像下面一样打开也是可以的

4ae7ac3d2d7e

image.png

即运行Run->Attach debugger to Android process

4ae7ac3d2d7e

image.png

attach process到指定进程,条件触发之后就可以直接进入调试模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值