Idea debug調(diào)試時(shí)獲取異步調(diào)用棧

java8 之后使用CompletableFuture來(lái)異步執(zhí)行任務(wù)的場(chǎng)景越來(lái)越多,這個(gè)時(shí)候debug調(diào)試就是個(gè)問題了。

我們只能看到新線程之后的調(diào)用棧,一個(gè)方法各種異步都可以調(diào)用,如果不知道前面的調(diào)用棧,是非常難排查問題的。

public class CompletableFutureExample {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        wrap();
    }
    
    public static void wrap() {
        CompletableFuture<Void> run = CompletableFuture.runAsync(() -> {
            process();
        });
    }
    
    public static void process() {
        System.out.println("run"); // 這里設(shè)置斷點(diǎn)
    }
}

debug截圖:


image.png

從截圖上我們是看不到完整的調(diào)用鏈的。

idea 2017之后提供了一個(gè)看異步調(diào)用棧的功能,非常的好用。
開啟異步調(diào)用棧:
image.png
開啟后的效果:
image.png

可以看到從main方法的入口了。

異步調(diào)用棧的功能非常的好,大家都用起來(lái)吧~
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容