debug教程

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


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

?


1

2

3

4

5

6

7

8

<code class="language-java hljs ">for (int i = 0; i < 10; i++) {

//获取当前i的值

    int selector = i;

    //打log查看当前i的值(此步多余,实际开发请忽略)

    Logger.e("for当前的i的值:" + i);

    //调用方法

    stepNext(i);

}</code>

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

点击debug模式运行<喎?"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxwPjxpbWcgYWx0PQ=="这里写图片描述" src="/uploadfile/Collfiles/20150616/20150616083835148.png" title="\" />

查看调试面板

一、简单调试


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学院。


?


1

2

3

4

5

6

7

8

9

10

11

12

13

<code class="language-java hljs ">/**

 * --------------

 * 欢迎转载   |  转载请注明

 * --------------

 * 如果对你有帮助,请点击|顶|

 * --------------

 * 请保持谦逊 | 你会走的更远

 * --------------

 * @author zsl

 * @github https://github.com/yy1300326388

 * @blog http://blog.csdn.net/yy1300326388

 */

</code>

时间: 2024-08-07 21:19:12

debug教程的相关文章

Xcode LLDB Debug教程

http://blog.sina.com.cn/s/blog_6dce99b10101gwwo.html http://blog.sina.com.cn/s/blog_6dce99b10101gwwv.html

iOS开发-Xcode使用技巧汇总(持续更新)

1. <LLDB调试命令初探> 2. <Xcode LLDB Debug教程> 3. <iOS开发准备篇-(5)Xcode调试技巧_1> 4. <iOS开发准备篇-(5)Xcode调试技巧_2> 5. <iOS开发准备篇-(5)Xcode调试技巧_3> 6. < iOS开发准备篇-(4)Xcode基本操作> 7. <提高Interface Builder高效工作的8个技巧>

Xcode基本操作

2.偏好设置 通过“command+,”快捷键或”Xcode|Preferences”菜单呼出偏好设置. (1)主题及字体(Preferences->Fonts & Colors) 选中一种主题(theme),例如“Midnight”,然后shift选择Source Editor/Console中的所有项,点击Fonts设置字体.Xcode默认字体为menlo,可选Consolas.Monaco等其他等宽字体. (2)文本编辑配置(Preferences->Text Editing)

【转】 Xcode基本操作 -- 不错

原文网址:http://blog.csdn.net/phunxm/article/details/17044337 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点列(Ribbon)->代码编辑窗口(Standard/Primary Editor)”. 边列(Gutter):显示行号和断点. 焦点列(Ribbon):灰色深度与代码嵌套深度相关:鼠标悬停可突出显示右侧相应代码块(Focus code blocks on ho

Android Studio debug调试教程

昨天公司领导批评我不会在Android  studio上debug    所以 今天利用休息的时间研究了一下  再此写一篇实用的文章希望大家喜欢 一.自己写的代码例子 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0; i < 10; i++) { //获取当前

《自拍教程18》adb_Android设备debug连接工具

adb命令介绍 做Android App测试,Android手机系统测试, 还有很多Android终端产品(手表,车载,智能电视,智能手表等) 都必须用adb命令,通过USB接口,与Android设备建立连接建立测试环境. adb.exe(Linux/Ubuntu/imac下是未带后缀的adb), 全称是:Android Debug Bridge, 是android sdk自带的命令行调试工具软件. 一般在.\sdk\platform-tools\的路径下,当然用adb完全没必要下载整套sdk,

菜鸟窝React Native 视频系列教程

菜鸟窝React Native 视频系列教程 交流QQ群:576089067 Hi,我是RichardCao,现任新美大酒店旅游事业群的Android Developer.15年加入饿了么即时配送BU,后负责蜂鸟众包Android端,期间引入react-native技术,作为国内react-native 与 Android混合开发的早期商业项目,具有一定经验,同时也是react-native开源项目reading(https://github.com/attentiveness/reading)

【Django】Django Debug Toolbar调试工具配置

正在发愁怎么调试Django,就遇到了Django Debug Toolbar这个利器. 先说遇到的问题: 网上也有教程,不过五花八门的,挨个尝试了一遍,也没有成功运行.最后终于找到问题所在: 从开发服务器日志可知:在请求页面时,debug_toolbar已经被加载.但是并没有在页面上显示出来: 从浏览器的开发者工具可以看出,jquery.min.js获取超时,没有被加载成功.这就是问题所在. 我们在settings.py中添加一行: 1 DEBUG_TOOLBAR_CONFIG = { 'JQ

visual_c++外挂教程(详细)

课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇内容:编写一个完整的,简单的外挂 C++的数据类型:Byte,Word,DWORD,int,float API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage) CE5.4工具的使用方法 中级篇内容:调试工具的使用技巧,功能CALL的概念 调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点. 常用汇编指令与对应高级语言的转换. 游戏功能CALL概念