idea的断点调试


import java.util.ArrayList;
import java.util.List;

public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
String result = getResult(list);

System.out.println(result);
}

public static String getResult (List<String> list){
if (list == null|| list.size() == 0){
return null;
}

StringBuilder sb = new StringBuilder();
for(String s : list){
sb.append(s).append(" ");
}
String result = sb.toString();

return result.substring(0,result.length()-1);
}


}
先编写一个这样的程序。 

快捷键
Alt+F8是添加断点 Ctrl + D 是快速复制一行



小虫子---即是Debug

点下小虫子就可以单步运行。

每次按F8,从断点一行一行地执行程序,直到运行结束。

resume

直接从当前断点跳到下一断点。

查看所有断点

  

 

 

 禁止所有断点:

在调试的过程中,不知道哪个断点有问题。某行代码有bug,想跳过所有的断点,

 



点击之后断点从红色变成灰白色,按F9之后所有的断点都跳过去,不会停下


条件断点

假设在这打断点,需要字符串s满足内容为张三才进行断点

Ctrl + Shift + F8  

就会出来一个条件窗口

 

输入java表达式

字符串s满足内容为张三才进行断点

 

设置了之后,满足条件会停留,

 list.add("张三"); 停留一次,其他都没有停留。若把条件断点去掉,则都会停留。

 

 

表达式求值:

在调试断点的过程中,在断点处要查看某一个值计算之后是什么结果

启动debug后,选中list。然后 Alt + F8

再按回车

就能看到当前list里的值

 

 运行到指定行:

 

Alt + F9  从断点运行到指定行。

 

 

setValue:设置值

String result = getResult(list);
按F2 将list填上null

 

来测试
if (list == null|| list.size() == 0){
return null;
}
这段函数的输出是否一致
断点回退
回退到上一个方法调用的开始处,在IDEA里测试无法一行一行地回退或回到到上一个断点处,而是回到上一个方法
回退的方式有两种,一种是Drop Frame按钮

 第二种方式,在调用栈方法上选择要回退的方法,右键选择Drop Frame

 

,回退到该方法的上一个方法调用处,此时再按F9(Resume Program),可以看到程序进入到该方法的断点处了。

 但有一点需要注意,断点回退只能重新走一下流程,之前的某些参数/数据的状态已经改变了的是无法回退到之前的状态的,如对象、集合、更新了数据库数据等等。




欢迎大家关注我的微信公众号,获取你不知道的宝藏。

 

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM