<div class="markdown_views"><blockquote>

有人说Android 的调试是最坑的,那我只能说是你不会用而已,我可以说Android Studio的调试是我见过最棒的。


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

for (int i = 0; i < 10; i++) {
//获取当前i的值int selector = i;//打log查看当前i的值(此步多余,实际开发请忽略)Logger.e("for当前的i的值:" + i);//调用方法stepNext(i);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

设置断点(点击红点位置添加或取消断点)

点击debug模式运行

查看调试面板

一、简单调试


1. step over:一步步往下走

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

点击单步调试按钮或按快捷键F8,看看效果。这里我们看到selector变量的值已经出来了selector:0,我们在看看黄色位置i的当前值是0。

这时我们继续F8,我们切换到logcat查看日志,我打印出的i的值是0,

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

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

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

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

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

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

这个是可以看到你所调用的所有方法的实现会让你跟着它走一遍,研究源码使用非常方便

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

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

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

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

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

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

这里的意思就是说,会很快执行到下一个断点的位置,而且可以静如任何调用的方法

二、高级调试


1. 跨断点调试

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

2.观察变量

如果我们想观察1个或者几个变量的值的变化,如果我们在Variables显示面版中观察如果我这里有太多太多的自定义变量和系统变量了,那么就难观察了,我们可以做如下操作:
点击Watches,点击+号,然后输入变量的名称回车就OK了,而且会有历史记录哦

如果变量名比较长我们可以这样:
选择[Variables]中的变量名然后点击[右键],选择[Add to Watches],然后Watches面板中就有了

3.设置变量的值

在程序中有很多的条件语句和循环语句,调试也是比较耗时的,我们可以通过快速设置变量的值来加快调试速度,我们可以做如下操作:
选择[Variables]中的变量名然后点击[右键],选择[Set Value..]或者选择之后直接F2(如上图)(下图为Variables面板)

4.查看断点

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

5.停止调试

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

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


有兴趣的童鞋可以关注我的Blog,我的专栏会持续更新Android Studio 教程,以及2015 I/O大会上的NDK的配置和编译,我也全部会分享给大家。
并且我收到了CSND 的讲师邀请,后期我会把这些Android Studio的使用教程录制成视频发布在CSDN学院。


/** * -------------- * 欢迎转载   |  转载请注明 * -------------- * 如果对你有帮助,请点击|顶| * -------------- * 请保持谦逊 | 你会走的更远 * -------------- * @author zsl * @github https://github.com/yy1300326388 * @blog http://blog.csdn.net/yy1300326388 */ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(function () {(function () { ('pre.prettyprint code').each(function () {
var lines = (this).text().split(′\n′).length;var(this).text().split('\n').length; var numbering = $(' ').addClass('pre-numbering').hide();
(this).addClass(′has−numbering′).parent().append((this).addClass('has-numbering').parent().append(numbering);
for (i = 1; i <= lines; i++) {
numbering.append(numbering.append(('

  • ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

    转载来源:http://blog.csdn.net/yy1300326388/article/details/46501871

as的断点调试与高级断点调试相关推荐

  1. 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

    文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...

  2. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

  3. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. python学习-代码调试(通过print调试、通过pdb调试、通过编译器调试(断点调试))

    文章目录 通过print调试 通过pdb调试 通过编译器调试(断点调试) 通过print调试 首先我这里写了一段代码,保存列表中的偶数,然后返回列表,在函数执行后,我对函数结果进行打印. 见代码: l ...

  5. VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位如何解决

    VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位怎么解决 问题如下: 1.错误代码报错行数错位  2.debug动态跟踪错位  3.Release跟踪错位  4.断点设置自动 ...

  6. vs2013如何调用监视窗口实现调试(如何打断点、逐步调试、逐过程调试、退出调试、条件调试)

    目录 1.打断点进入调试窗口 2.F11逐步调试,F10整过程调试,shift+F5退出调试 3.条件调试 1.打断点进入调试窗口 双击代码前的空白即可,再次双击取消断点. 2.F11逐步调试,F10 ...

  7. 嵌入式软件调试之软件断点

    关注.星标公众号,直达精彩内容 来源:CSDN | maomao171314 整理:技术让梦想更伟大 | 李肖遥 软件断点 INT 3 指令,即通常所说的"软件断点",一条X86系 ...

  8. 解决pycharm调试断点无效跳过断点运行问题

    使用pycharm调试paddle inference程序打断点后Debug无效,程序无视了断点,显示如下. 查找了相关资料,打开settings(快捷键ctrl+shift+s)后选择Build,E ...

  9. pdb断点命令_python的pdb调试命令的命令整理及实例

    python的pdb调试命令的命令整理及实例 一.命令整理 完整命令 简写命令 描述 args a 打印当前函数的参数 break b 设置断点 clear cl 清除断点 condition 无 设 ...

最新文章

  1. 《Ext JS 高级程序设计》的目录与样张
  2. python 对图片进行直方图均衡化处理(批量自动遍历文件夹图片)
  3. 转移指令的原理---汇编学习笔记
  4. 关机状态下启动微型计算机叫什么,教你电脑关机后自动重启是什么原因
  5. mysql8.0.13安装不_Windows环境下MySql8.0.13的安装及常见问题解决方案
  6. Gsoap在QT工程里如何调用
  7. c ++基本数据类型_C ++中的数据类型
  8. 2021-09-23图嵌入方法
  9. git mac 可视化diff_Git可视化比较工具P4Merge
  10. STM8S103f单片机的开发(1)LED灯的点亮
  11. python json对比差异,更新json数据
  12. 在ubuntu16.04上安装suitecrm
  13. 运动斗士终南山的不老之道
  14. 单元测试、集成测试、系统测试、验收测试
  15. 【编程题】【Scratch二级】2020.06 小鸡捉害虫​
  16. numpy之arange函数
  17. Android Studio如何查看自己创建的SQLite数据库
  18. 量子计算机量子信息研讨会,2015全国量子信息与量子计算机前沿研讨会在我校召开...
  19. 什么是数据类型?数据类型有什么用?
  20. 分享回合制策略游戏AI算法设计方法

热门文章

  1. Unreal Engine 4 系列教程 Part 8:粒子系统教程
  2. Espresso的详细使用
  3. 云桌面是什么?云桌面如何运行的?
  4. 内燃机 vs 外燃机
  5. 大型复杂项目集管理之二——项目集治理
  6. bigworld源码分析(1)—— 研究bigworld的意义和目标
  7. 北邮计算机网络实践第四次实验,北邮计算机网络技术实践实验四实验报告.doc...
  8. mx播放器有没有投屏功能_这个播放器真是太强大了!
  9. 浅谈中国2050年人均受教育年限问题
  10. Android 之AS项目,无法编译,Make Project(小锤子)、Rebuild Project、Clean Project都无效