IDEA 调试技巧 -DEBUG 条件断点

IDEA 的断点调试大家应该都用过,其实 IDEA 的调试功能很强大的,其中有一项就是条件断点。即:在代码运行到满足指定条件时才断点。

举个简单例子,下面这段测试代码会循环执行 doSomething 方法,我们希望在 doSomething 方法中加断点,并判断传入的 user 对象的 userCode==5 时才断点,其它情况则正常执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import lombok.Getter;
import lombok.Setter;

public class IDEATest {

@Test
public void test() {
for (int i = 0; i < 10; i++) {
doSomething(new User(i, "姓名" + i));
}
}

private void doSomething(User user) {
System.out.println(user); // 该行加断点
}
}

@Getter
@Setter
class User {
private int userCode;
private String userName;

public User(int userCode, String userName) {
this.userCode = userCode;
this.userName = userName;
}

@Override
public String toString() {
return "User{userCode=" + userCode + ", userName='" + userName + '}';
}
}

操作步骤

首先在 doSomething 方法中加断点:

1582104019544

然后右键断点,在弹出框中输入表达式user.getUserCode() == 5,这时断点红点旁边会出现个?号:

1582104067512

最后执行 debug,就会发现直到 userCode=5 时程序才在断点处停下来了:

1582104123213