1. F8,表示当前实现继续运行直到下一个断点。
2. F5,表示进入当前方法。
3. F6,表示运行下一行代码。
4.F7,表示退出当前方法,返回到调用层。
一、J2SE中debug
设置条件断点
1 packagetk.dongyeblog;2
3 public classTestDemo {4 public static voidmain(String[] args) {5 TestDemo td = newTestDemo();6 td.print1to10();7 }8 public voidprint1to10(){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 packagetk.dongyeblog;2
3 public classTestDemo {4 public static voidmain(String[] args) {5 Person p = newPerson();6 String name =p.getName();7 if(name.equals("")){8 System.out.println("姓名不能为空!");9 }10 }11 }
Person.java
1 packagetk.dongyeblog;2
3 public classPerson {4 privateString name;5 private intage;6
7 publicString getName() {8 returnname;9 }10 public voidsetName(String name) {11 this.name =name;12 }13 public intgetAge() {14 returnage;15 }16 public void setAge(intage) {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%的时间去调试代码,动手之前尽量想好如何去做,并且已经为你自己的思路做了充分的实验。