Debug Mode 是 IntelliJ 強大而方便的功能。有時覺得明明沒寫錯卻走歪了,摸不著頭緒,這時只好直接看執行過程的中數值變化。Debugger 讓程式執行過程中可以暫停,檢查變數,以及在在每一行轉變過程,全部清清楚楚。也可以避免臨時想要加一個 println 又忘了拿掉。
一般的 Java 應用是在啟動時用蟲蟲按鈕來跑,才會啟動 Debug mode。 Quarkus 這裡有點不太一樣,是按正常執行的那個 Play
起來後去 RUN -> Attach to Process.選擇第一個 process.
在想暫停的行數點兩點。會出現紅紅一點,在 Debug mode 時,執行到這裡會暫停。再點兩次就會取效。
以昨天的質數運算為例,我們在行 27 設了一個 Break Point
啟動 -> Attach to Process 後,瀏覽器打開 : http://localhost:8080/prime/359 就會發現沒有回應。再回去 IntelliJ 看。就會看下面變成了 Debug 視窗,並且會列出目前scope 中的所有變數。
利用按鈕可進行步進的操作
在中斷點利用 Step Over 一步步往下,也會看到在各個 step 變數的記錄
直行還有一組按鈕,常用到的有三個,通常會用 Resume Program 表示這回合該看都看完了,可以往下跑完或是到下一個中斷點。
其實如果是 pure function 應該可以很明白輸入什麼就可以輸出什麼,用到 debug mode 可能就是不夠 pure。不過人在江湖走還是得處理一些歷史共業或是自已以前的坑, Dubug mode 學起來也是多一門武器