這幾個IDEA高級調試技巧,用完就是香

在這裏插入圖片描述

一個項目啓動兩次

測試分佈式項目時,常常要一個項目啓動2次,不用將一個項目打開屢次啓動,配置一下便可html

1.點擊Edit Configurations
在這裏插入圖片描述
2.勾選Allow parallel run
在這裏插入圖片描述
3.依次點擊以下2個按鈕
在這裏插入圖片描述java

條件斷點

有以下代碼,只想讓它在i == 10的狀況下停下來多線程

@Test
public void condition() {
    for (int i = 0; i < 30; i++) {
        System.out.println(i);
    }
}

1.鼠標左鍵在行數上加上斷點
2.在斷點上右鍵加上條件
3.點擊Done按鈕
在這裏插入圖片描述
此時斷點上會有問號,表示這是一個條件斷點,右鍵點擊便可查看條件
在這裏插入圖片描述分佈式

多線程調試

當有多個線程時,咱們如何控制線程的執行順序呢?ide

@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模式下是作不到的,由於咱們沒辦法控制線程的執行順序。須要作以下設置this

1.右鍵點擊斷點,選中Thread(Make Default表示把當前選中的Thread設置爲默認值)
在這裏插入圖片描述
設置後的斷點以下,3個斷點都是Thread模式
在這裏插入圖片描述
執行到某個語句想切換線程的時候選中下一步要執行的線程便可
在這裏插入圖片描述idea

臨時執行表達式/修改變量值

代碼以下線程

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());
}

在輸出語句上加上斷點
在這裏插入圖片描述
在斷點處執行了debug

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

相關文章
相關標籤/搜索