1. F8,表示当前实现继续运行直到下一个断点。
2. F5,表示进入当前方法。
3. F6,表示运行下一行代码。
4.F7,表示退出当前方法,返回到调用层。
一、J2SE中debug
设置条件断点
1 package tk.dongyeblog; 2 3 public class TestDemo { 4 public static void main(String[] args) { 5 TestDemo td = new TestDemo(); 6 td.print1to10(); 7 } 8 public void print1to10(){ 9 for (int i =1; i <= 10; i++) { 10 System.out.print(i+""); 11 } 12 } 13 14 }
设置条件断点:在函数print1to100中的system.out.print语句设置条件断点:在断点处右击,选择Breakpoint Properties,打开条件断点允许框,输入条件i==5。选择条件为真时,触发中断。回到主程序Debug运行之,可以看到程序在输出到4之后停止,此时i值为5
另外一个例子:
TestDemo.java
1 package tk.dongyeblog; 2 3 public class TestDemo { 4 public static void main(String[] args) { 5 Person p = new Person(); 6 String name = p.getName(); 7 if(name.equals("")){ 8 System.out.println("姓名不能为空!"); 9 } 10 } 11 }
Person.java
1 package tk.dongyeblog; 2 3 public class Person { 4 private String name; 5 private int age; 6 7 public String getName() { 8 return name; 9 } 10 public void setName(String name) { 11 this.name = name; 12 } 13 public int getAge() { 14 return age; 15 } 16 public void setAge(int age) { 17 this.age = age; 18 } 19 }
运行之后出现:Exception in thread "main" java.lang.NullPointerException
at tk.dongyeblog.TestDemo.main(TestDemo.java:7)
下面运行debug进行调试,首先定义断点。然后启动debug模式。选中要观察的对象,右键watch,Experssions栏里会出现选中的属性。从图中可以看到name的value为null。所以会出现空指针异常。应改为if(name==null || name.equals("")){
二、在WEB项目中启动debug模式
在运行JavaEE项目时,需要在eclipse内部启动服务器,并在servlet程序中设置断点,在执行到断点时会自动debug模式。其他和J2SE调试类似
优秀的程序员总是花80%的时间来思考如何解决问题,20%的时间来动手完成代码,而糟糕的程序员总是用20%的时间去写代码,80%的时间去调试代码,动手之前尽量想好如何去做,并且已经为你自己的思路做了充分的实验。