一、调试步骤
1.添加断点
方法: 如上图,在代码编辑区显示行数的左边空白区域,单击鼠标
2.debug
两种开启调试的方法:
- debug调试:
- attach debugger to Android Progress:
3.执行到断点,开始调试
(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: 关于断点调试的一些设置
四、调试信息显示区
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等等,非常方便.
不同分类的断点
打开Run->View Breakpoints->点击”+”号可以看到如下的界面
1、字段断点:
添加方法:
在全局变量定义处左侧鼠标左键点击添加
使用场景:
定义的全局变量被多处使用,当不确定被何处修改的时候,对要观察的变量添加Java Field Exception.这样只要该变量的值被修改的时候,都会自动断点到发生修改的代码行.
2、方法断点:
添加方法:
在定义方法处左侧鼠标左键点击添加
使用场景:
需要具体观察一个方法的时候,就是Java Method Breakpoint大展身手的时候了,当代码执行到该方法断点处的时候,如果想进入方法,直接step over(F6).想直接跳到方法结束看返回值的时候,直接Resume Program(F8),跳到下一个断点,会自动断到方法结尾处.仅仅一个方法断点而已,就能做到这么多,是不是超级方便?
3、异常断点:
添加方法:
在ViewBreakpoints->点击”+”号->Java Exception Breakpoints
使用场景:
出现异常但是不知道在代码的哪个地方抛出的时候,就是用它的时候.添加某异常的断点之后,只要出现该异常,会自动定位到出错代码处.
为你的断点添加条件
当为你的断点添加上条件之后,就只有满足这个条件的之后,这个断点才会生效.
例如,我在下面的代码中,直接想查看总循环次数为for循环的第36次循环,我就添加”i == 36”的条件.于是当断点生效时,表现为:
添加方法:
在断点上鼠标右键,就会出现添加条件的对话框.
使用场景:
使用的场景很广泛,一般用在很多数据中,专门观测某一类数据的时候,条件断点表现的尤为出色.
手动设置变量的值.
在调试过程中,你完全可以直接给你定义的变量设置一些自定义的值,各种刁钻都可以,去测试你的方法写的对不对,代码是否写的稳定.
这样就再也不用一次次去构建不同环境去测试运行了.
示例:
这是调试的一个方法,已经进入方法了,但是我们想改方法参数b的值.
在debug中输入自定义的值,然后Enter键按下去
变量 b的值已经被改变了.
使用方法:
debug面板–>Variables窗口–>选中要观察的变量–>鼠标右键—>Set Value
Evaluate Expression 直接求值表达式
示例:
输入要求值的表达式,然后点击Evaluate按钮,就可以输入表达式的值.
使用方法:
1.代码区–>鼠标右键–>Evaluate Expression
2.debug面板–>Variables窗口–>鼠标右键—>Evaluate Expression
3.debug面板–>Watches窗口–>鼠标右键—>Evaluate Expression