这几个IDEA高级调试技巧,用完就是香
文章图片
一个项目启动两次
测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可
1.点击Edit Configurations
文章图片
2.勾选Allow parallel run
文章图片
3.依次点击如下2个按钮
文章图片
条件断点
【这几个IDEA高级调试技巧,用完就是香】有如下代码,只想让它在i == 10的情况下停下来
@Test
public void condition() {
for (int i = 0;
i < 30;
i++) {
System.out.println(i);
}
}
1.鼠标左键在行数上加上断点
2.在断点上右键加上条件
3.点击Done按钮
文章图片
此时断点上会有问号,表示这是一个条件断点,右键点击即可查看条件
文章图片
多线程调试 当有多个线程时,我们如何控制线程的执行顺序呢?
@Test
public void thread() {new Thread(() -> {
System.out.println("我是线程1-1");
System.out.println("我是线程1-2");
System.out.println("我是线程1-3");
}, "线程1").start();
new Thread(() -> {
System.out.println("我是线程2-1");
System.out.println("我是线程2-2");
System.out.println("我是线程2-3");
}, "线程2").start();
System.out.println("主线程");
}
例如让线程1和2依次执行如下代码
System.out.println("我是线程1-1");
System.out.println("我是线程2-1");
System.out.println("我是线程1-2");
System.out.println("我是线程2-2");
普通模式debug模式下是做不到的,因为我们没办法控制线程的执行顺序。需要做如下设置
1.右键点击断点,选中Thread(Make Default表示把当前选中的Thread设置为默认值)
文章图片
设置后的断点如下,3个断点都是Thread模式
文章图片
执行到某个语句想切换线程的时候选中下一步要执行的线程即可
文章图片
临时执行表达式/修改变量值 代码如下
public class User { private String username;
private Integer age;
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
}
}@Test
public void changeValue() {
User user = new User();
user.setUsername("aa");
System.out.println(user.getUsername() + " " + user.getAge());
}
在输出语句上加上断点
文章图片
在断点处执行了
user.setAge(10);
最后的输出结果为
aa 10
我们也可以直接右键选中Set Value修改username属性等
文章图片
回退
文章图片
当断点执行到method2()时,想回退到method1时,点击如下按钮即可
文章图片
需要注意的是,断点回退只能重新走一下流程,某些改变了的数据是无法回退到之前的状态,如对象、集合等等
欢迎关注 关注回复 pdf目录 有惊喜,海量视频资源访问 www.erlie.cc
文章图片
参考博客 [1]https://www.cnblogs.com/jun1019/p/9741224.html
[2]https://www.cnblogs.com/chiangchou/p/idea-debug.html
推荐阅读
- 医生爆料杨颖这样对孩子|医生爆料杨颖这样对孩子, 黄晓明一个细节证实代孕传闻
- Flink|Flink入门
- 这样的生活你到底累不累()
- 箭牌卫浴(怎么样正确应对便秘(请收下这份如厕指南))
- 想了解关于|想了解关于 Redux 的这里都有
- 把我困住的,并不是问题,而是情绪
- 这18个网站能让你的页面背景炫酷起来
- 软件安装及常见配置|IDEA创建基于maven的web项目并在tomcat上部署运行
- 笔记|idea2021创建maven web项目集成tomcat
- Javaweb|IDEA中创建Maven Web项目(两种方式)