java中debug使用

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%的时间去调试代码,动手之前尽量想好如何去做,并且已经为你自己的思路做了充分的实验。

原文地址:https://www.cnblogs.com/dongye/p/debug.html