赞
踩
1. 进入debug
- 点击图中红色圆圈圈起的左边绿色按钮,运行app的debug模式,快捷键Shift+F9
- 点击图中红色圆圈圈起的右边按钮,可以选择正在运行的进程attach debugger
1. 打断点:鼠标点击编辑框左侧,出现红色圆点
这张图可以看出断点也有行断点、方法断点、字段断点、异常断点。其实打断点仔细观察也可以发现它们的标识图片是不同的,就是上图中每行前面的那四种不同的小红点。
从左到右依次
从上到下依次为:
点击上一张图中的5查看断点可以打开下面的面板,这张面板提供了关于debug的许多高级功能:
右击断点,可以设置condition。如图所示,设置一个变量mJoinVaule.equals(“222”),点击Done。当在mJoinEt这个EditText中输入222时才会触发这个断点。
在BreakPoints面板同样可以设置条件断点。
下面是一段测试代码,用来测试后面的功能
package com.jnxy.arithmetic.base;
/**
* Created by admin on 2016/8/5.
*/
public class Person {
int age;
public void out() {
System.out.println("age : " + age);
}
public Person(int age) {
this.age = age;
}
public static void main(String [] args) {
Person p1 = new Person(3);
Person p2 = new Person(5);
Person p3 = new Person(8);
Man man = new Man(10, 10);
Woman woman = new Woman(12, 12);
Person[] persons = new Person[]{p1, p2, p3, man, woman};
for (Person person : persons) {
person.out();
}
}
}
class Man extends Person {
int weight;
public Man(int age, int weight) {
super(age);
this.weight = weight;
}
}
class Woman extends Person{
int height;
public Woman(int age, int height) {
super(age);
this.height = height;
}
}
断点打在上方代码第27行,选中代码,同时设置Condition和Log evaluation expression,这样只有person.age==8时断点生效,才会在log打印表达式。当然,也可以值设置Log表达式。控制器输出如下图,可以看到只有age==8时才打印了toString().
打好断点,并设置触发断点的实例
继续执行程序,当设置的实例调用方法时断点生效。
首先设置Class Filter,内容为要过滤类的完整路径,设置为只有Man类调用方法断点生效,下图age==10,证明确实是Man类调用的方法。
Pass Count和Condition具有相似之处,但Condition用途应该更广泛一些。
调试过程中,选中一个变量右键可以可以进行Set Value操作,这项强大的功能对需要不同数据进行判断的情况提供了极大地便利。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。