如果使用断点调试

1.判断大概哪个地方出现了问题
2.在怀疑的代码旁加上断点
3.点击调试运行
4.程序到断点的地方停下来,接下来我们就一步步开始即可
5.没有5了,断点调试超级方便

来个小例子感受一下

1.在怀疑的代码上加上断点:

2.点击debug调试

3.程序执行到断点出就可以调试了

4.断点按钮组选择直接执行到下一行代码,还是到方法里面一步步执行,我这里选择进入方法,是不是能看到每一行的值

这样是不是比打印日志好多了.是吧?是的.

关于断点调试,我们应该知道的事

一、调试步骤

1.添加断点
方法: 如上图,在代码编辑区显示行数的左边空白区域,单击鼠标
2.debug
两种开启调试的方法:
debug调试:
开始方法: 点击绿色小昆虫图标开始调试
适用场景:程序未运行,点击debug,开始调试模式运行.

attach debugger to Android Progress:
开始方法:点击 开始调试
适用场景:程序已经运行了,这个时候想要调试了,不需要重新debug重新开始程序,可以选择直接点击attach debugger,选择要调试的进程,直接进入调试模式.

3.执行到断点,开始调试
这一步主要是要看我们的debug面板(就是下面这个),分为几个部分,
(1)断点单步调试区
(2)断点管理区
(3)调试信息观察区

二、断点单步调试区功能介绍

Step Over(F6) : 执行到下一行代码

示例:

Step Into(F5):进入到当前方法中,仅限于自定义的方法,系统方法进不去

示例:

Force Step Into(Alt +Shift+F7):强制进入方法,包括系统方法

示例:

Step Out(F7) : 跳出方法或者下一个断点,就直接到下一个断点(跳到下一个断点这个功能的我不常用,一般使用左侧断点管理区的绿色小三角按钮)

示例 (跳出方法):

Run To Cursor(Ctrl+R): 快速进入当前代码执行的地方,多用于循环

示例(直接从i=0到i=1的位置):

Evaluate Expression (Ctrl+U): 表达式求值

示例:

三、断点管理区功能介绍

Resume Program(F8):直接跳到下个断点,不过没有下个断点,就直接结束了调试

Pause Program: 暂停调试

Stop(Ctrl+F2): 直接结束调试

View Breakpoints(Ctrl+Shift+F8): 查看设置的断点们

Mute Breakpoints: 将设置的全部断点的状态置为无效,有点取反的意思,当有效的时候点击断点全部变为有效,反之无效变为无效

Get thread dump: 获取线程的帧栈区,包括线程的名称,运行状态等

Setting: 关于断点调试的一些设置

有以下的值:

名称 功能解释
Show Values Inline 调试过程中开启该功能,将会代码右边显示变量值,默认开启
Show Method Return Values 调试过程中开启该功能,将在变量区显示最后执行方法的返回值 ,默认不开启
Auto-Variables Mode 开启这个功能后,idea的Debugger会自动评估某些变量,大概就是当你执行在某个断点时,Debugger会检测当前调试点之前或者之后的变量的状态,然后在变量区选择性输出,例如下面没调用这个变量了,那这个变量就不显示在变量区了. 默认不开启
Sort values alphabetically 开启这个功能的化,变量区中的输出内容,例如变量名或者方法名,会按照按字母顺序进行排序,默认不开启

如果这些描述,小伙伴们想知道具体勾选与不勾选,影响了什么,可以自己点击试试,那才是最生动形象的演示,请相信我,我只是懒的贴图了.

四、调试信息显示区

1、对象变量区-Variables窗口
这个窗口是主要显示debug下,代码执行处的变量的值,你可以对显示的值做一些操作,
例如:
SetValue–手动设置指定的值
Evaluate Expression –计算表达式
Add to Watches–添加到Watches窗口
等等,这里不列了,小伙伴们大可都去试试

2、变量观察区- Watches窗口

观察窗口,顾名思义,就是专门用来观察数据的值得窗口.这个窗口存在的意义是,如果多个标量或者多个表达式在多个不同的地方,要上下观察是很麻烦的,我们可以把它Add to Watchs, 然后在观察窗口就可以一次看到多个变量值;
添加到这个窗口的方式有以下几种:
1、变量右键选择 Add to Watches
2、Watches窗口中点击+号,输入观察的数据,这里我要提醒小伙伴一下,这里不限于是变量的名称,你完全可以数据一个表达式什么的,例如a+5,a >0等等,非常方便.

3、线程帧栈区- Frames窗口和Threads窗口

说实话,这个窗口我没自己实践过,只是大概知道是做线程调试的,想想都很强大,等我研究一下,用过再来写

AndroidStudio还提供了让调试更加快捷的一些小技巧~再写下去篇幅就太长了
新开一篇,可爱的传送门在这里 AndroidStudio-断点调试-让你的调试更有效率

Android studio断点调试相关推荐

  1. Android studio断点调试(全在这里)

    转载地址:http://blog.csdn.net/huangxiaominglipeng/article/details/53100811 有人说Android 的调试是最坑的,那我只能说是你不会用 ...

  2. Windows系统Android Studio断点调试Android源码

    之前我都是在Windows环境下开发Android.调试代码的时候有时候要进到系统类中去断点调试代码,经常断点断不到,或者就跑飞了. 最近因为在研究一些源码,比如LayoutInflater.infl ...

  3. android studio 断点调试

     3 4 5 6 7 8 alt+f8 debug时选中查看值 f8相当于eclipse的f6跳到下一步 shift+f8相当于eclipse的f8跳到下一个断点,也相当于eclipse的f7跳出 ...

  4. Android Studio系列(二)使用Android Studio开发/调试整个android系统源代码(不定时更新)

    本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入Android源码的方法步骤. 环境: Ubuntu 12.04,o ...

  5. Android Studio eclipse 调试技巧

    如上图设置多个断点,开启调试.想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码.如果后面代码没有断点,再次点击该按钮将会执行完程序.点击箭头2指向的按钮,可 ...

  6. android studio 热部署,Android Studio 你不知道的调试技巧

    原标题:Android Studio 你不知道的调试技巧 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者 - weishu http://android.jobbole.com/83282/ ...

  7. android studio 设备调试及Logcat查看

    文章转载自:http://www.cnblogs.com/apaojun/p/4283944.html 现在android的开发工具基本上都改用android studio而慢慢弃用eclipse了, ...

  8. android开发板只有网口和串口如何使用android studio进行调试

    android开发板只有网口和串口如何使用android studio进行调试 1.要先准备一条串口线,或者串口转usb的线,用于在pc端与开发板端建立连接. 2.要下载一个在pc端运行的超级终端,我 ...

  9. Android studio来调试小米盒子和百度影棒

    前段时间想用Android studio来调试小米盒子和百度影棒,由于小米盒子3增强版没有USB接口,所以不能通过数据线来连接.在网上找了好多资料, 基本都是说通过数据线来连接,可是没有USB接口,让 ...

最新文章

  1. 运行时权限框架YPermission开源
  2. 梦想成现实:用xUnit.net在单元测试中实现构造函数依赖注入
  3. 从12月7日起.广东移动不再区分cmwap,cmnet流量!
  4. 题目3:文本文件单词的检索与计数(实现代码)
  5. python写一个聊天程序_python实现一个简单的网络聊天程序
  6. php 正则表达式提取出合法的时间_PHP正则表达式核心技术完全详解 第1节
  7. JavaScript执行bat文件清理浏览器缓存
  8. 实验6.2 定义一个基类BaseClass,观察构造函数和析构函数的执行情况。
  9. 无意中发现的MSDN软件下载网站
  10. Bailian3729 用set实现字符串的排序和查找【文本处理】
  11. Python入门-traceback
  12. mendeley中如何重复引用同一篇参考文献_【经验分享】如何多平台同步文献 - Win / Android / IOS...
  13. C语言 逻辑运算符及其优先级
  14. 深度学习论文: Learning to Resize Images for Computer Vision Tasks及其PyTorch实现
  15. android 解析rss,在Android中解析RSS源
  16. 客户流失预测_如何不预测和防止客户流失
  17. ios 裁剪框大小_iOS自定义裁剪图片比例尺寸,图片自动旋转解决办法
  18. 计算机检索终端室与目录厅的区别,图书馆建筑设计规范 条文说明 建筑设计 目录检索、出纳空间...
  19. java求某点坐标是否包含在菱形面积中
  20. 计算机二级Java-综合应用题-(极速倍斩第2版-B1)

热门文章

  1. hybrid 是什么
  2. 2千万用户APP的开发运营流程
  3. 什么是面向对象,如何用面向对象的思想写代码
  4. 微信小程序-申请小程序
  5. 前端笔试题总结(一) - JS篇
  6. 台式机怎么装蓝牙模块_【硬件篇】第1期:配件选购基础知识(台式机)
  7. 【mysql】左连接 连表查询 去重
  8. C++字符串数组 | 字符串数组输出
  9. 计算机社团英语宣传,社团宣传 | 计算机爱好者协会闪亮登场!
  10. c语言 接口实现 pdf,ORACLE和C语言通用调用接口实现.pdf