Android studio断点调试

Android studio断点调试有人说Android的调试是最坑的,那我只能说是你不会用而已,我可以说AndroidStudio的调试是我见过最棒的。下面会将debug模式和Attach模式的断点调试好了开始写一个简单的调试程序,我们先来一个for循环设置断点(点击红点位置添加或取消断点)点击debug模式运行查看调试面板一、简单调试1.stepover:…

大家好,又见面了,我是你们的朋友全栈君。

如果使用断点调试

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-断点调试-让你的调试更有效率

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143457.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月21日 下午4:40
下一篇 2022年5月21日 下午4:40


相关推荐

  • dataway控制台技巧

    dataway控制台技巧1 2 可以选择极为简单的 sql 模式 但是该模式在 dataway 里会先转换成 dataQL3dataQ 在 4 1 8 版本添加了 mybatis 的功能 可以动态绑定

    2026年3月18日
    3
  • ID卡(工卡)复制到手机NFC「建议收藏」

    ID卡(工卡)复制到手机NFC「建议收藏」1.很多单位的工卡都是ID卡,而读卡机,一般是多频的,支持多种卡,那么如何把ID卡写到手机NFC中,实现“忘带卡自由”呢?2.前提条件:用手机NFC,在单位的刷卡机上刷卡,提示“非法卡”。说明打卡机支持NFC,如果不支持,请略过本文3.在单位的打卡机上正常刷卡,屏幕上会提示卡号。或者有的工卡上带卡号,一般ID卡号是00开头或000开头的10位卡号。如果不是,说明不是ID卡,请略过本文。有的单位的人事系统里也会记录员工的物理ID卡号。或者用其他读卡器读ID卡,也能读到卡号。4.获取到ID物理卡号后

    2022年5月1日
    1.6K
  • Pacemaker+corosync实现高可用集群

    Pacemaker+corosync实现高可用集群一 Pacemaker 和 corosync 概述 Pacemaker 心脏起搏器 是一个集群管理资源器 但是其不提供心跳信息 pacemaker 是一个延续的 CRM Pacemaker 到了 V3 的版本以后拆分了多个项目 其中 pacemaker 就是拆分出来的资源管理器 Heart3 0 拆分之后的组成部分 Heartbeat 将原来的消息通信层独立为 heartbeat 项目 新的 hea

    2025年10月14日
    4
  • centos7设置go代理

    centos7设置go代理wgethttps://dl.google.com/go/go1.10.3.linux-amd64.tar.gztar-C/usr/local-zxvfgo1.10.3.linux-amd64.tar.gzvim/etc/profileexportGOROOT=/usr/local/goexportPATH=$PATH:$GOROOT/binexportGOPROXY=https://goproxy.cnsource/etc/profilegoversion..

    2022年7月26日
    15
  • 教师工龄怎么算?教师工龄和教龄的区别_教师辞职前的教龄算工龄吗

    教师工龄怎么算?教师工龄和教龄的区别_教师辞职前的教龄算工龄吗一、工龄和教龄的区别:一。工龄和教龄的概念。工龄:是指职工自与单位建立劳动关系起,以工资收入为主要来源或全部来源的工作时间,可分为一般工龄和本企业工龄。教龄:是指教师从事教学工作连续累计时

    2022年8月2日
    10
  • MySql必知必会实战练习(四)主键、外键、sql约束、联结表

    本博将对主键、外键、MySql数据库约束和联结表的相关特性进行总结和实战1.主键表中的每一行都应该具有可以唯一标识自己的一列(或一组列),而这个承担标识作用的列称为主键如果没有主键,数据的管理

    2021年12月29日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号