前言:
技术但求每天进步一点,不求一蹴而就。
作为一个开发,Debug是不可缺少的技能,如果一个开发Debug都不熟悉的话,那他肯定不是一个好的开发。下面我分享下我工作中常用的的那些Debug.
从上面的图可以看出断点是分类的
1 --行断点(每一行的断点)
2 --方法断点
3 --异常断点
他们之间的图标也是不一样的
1.行断点
1.条件断点
什么是条件断点?意思是等到一定的条件的时候,才发触发这个Debug
实用场景 :
假如有一段代码for循环写的,你需要在第999次的时候debug的时候怎么处理(不知道有没有朋友面试的时候遇到过这个问题)
如何使用:
在你打断点的地方,就是图中的红点处,右键就出现这个画面,输入你的条件就OK
2 字段和方法断点
抓住关键方法或字段来追踪应用程序的运行轨迹
字段断点的触发条件是字段值被更改,方法断点是方法被调用
场景:适用于类似多线程下的复杂场景
使用:在字段那行、在方法声明的那行单击即可
如下图所示
下面可以看到在那个线程运行
下面分析一些常用快捷键
Evaluate Expression
计算表达式
作用:可以输出代码中表达式的值
使用:debug状态下,右击选择Evaluate Expression
如下图所示
或者
使用:Alt+鼠标左键 在变量上面点击
2.异常触发的断点
什么是异常触发断点就是android运行的时候抛出的异常
实用场景 :
加入开发中遇到一些bug,没有一点头绪的时候,或者没有给出准确的位置的时候
如何使用:
图标1是点击的时候弹出该图框
图2 是java自带的一些异常
图3是自定义的异常抛出
点击DONE后就可以
下面介绍一些图标
1 ------是普通的运行
2 -------是Debug的运行
3 -------将运行状态切换到debug模式
在这里重点介绍下第三个按钮,因为用的多点
app处于运行的状态
点击的时候会弹出一个框叫你选择哪个进程处于debug模式
1.是下一步,单步执行
2 进入到方法中,必须是自定义的方法(不可以执行3)
3.可以进入到源码中(同时可执行2)
4.跳出正在执行的方法
从上到下依次为:
- 运行至下一断点,(从暂停)恢复程序
- 暂停程序
- 关闭调试
- 查看断点
- 隐藏断点(breatpoints)
- 查看线程堆栈