CodeGym /Java Adesua /Frontend SELF TW /IntelliJ IDEA Debug

IntelliJ IDEA Debug

Frontend SELF TW
等級 38 , 課堂 3
開放

10.1 啟動除錯器

我們將基於 IntelliJ IDEA 來學習除錯的過程,這是很合邏輯且有趣的。你馬上就可以證實這一點。

在 IntelliJ IDEA 中(需要 Ultimate Edition 版本),可以以兩種模式啟動你的程式:

程式啟動模式 面板上的圖示 快捷鍵
一般執行 bug Shift+F10
除錯模式啟動 bug Shift+F9

你已經熟悉一般的工作模式:程式會啟動、執行並結束。而除錯模式會給你帶來不少驚喜。

除錯模式

除錯模式讓你可以逐步執行整個程式。準確地說,是逐行:一行接一行。 在此過程中,你可以在每個程式步驟中觀察變數的值(執行每行代碼後)。甚至還可以改變它們的值!

為了最小地掌握程式除錯的藝術,你需要研究三件事:

  • 停靠點
  • 逐步執行
  • 查看變數值

10.2 停靠點 (Break Points)

IDE 允許你在代碼中放置特別的標記——停靠點 (break point)。每當在除錯模式下運行 的程式到達一行被標註為break point的代碼時,程式將暫停。

要在特定行上設置break point,只需在 IntelliJ IDEA 中點擊該行左側即可。例如:

break point

結果,該行將被標記為停靠點 (break point),而 IntelliJ IDEA 會用紅色突出顯示整行

break point

再次在代碼左側面板上點擊鼠標將刪除已設置的break point

你也可以直接在當前行用快捷鍵設置break point——Ctrl+F8。 在已存在break point的行再次按Ctrl+F8會移除它。

10.3 在除錯模式下啟動程式(啟動除錯)

如果你的程式中有至少一個停靠點,你可以在除錯模式下運行程式(Shift+F9 或「帶蟲子的圖標」)。

在除錯模式下啟動後,程式會像平常一樣執行。但是,一旦它到達某行標有 break point 的代碼,就會暫停。例:

break point

在截圖的上半部分,你可以看到包含兩個停靠點的程式代碼。程式暫停在 第 2 行——用藍色線條標示。第 2 行尚未執行:控制台上還沒有任何輸出。

在屏幕的下半部分,你可以看到除錯模式面板:Thread & variables 面板、Console 面板(顯示輸出),以及一組除錯模式按鈕。

如果你想從暫停中繼續運行程序,可以按左下角面板上的 Resume Program 按鈕(或按 F9 鍵)。

breakpoint

如果按下該按鈕(或 F9),程序將繼續執行,直到遇到下一個停靠點或完成。這是按下該按鈕後會看到的情況:

breakpoint

程序在第二個停靠點停止,控制台顯示了字樣 Hello 和 and,這表明三行輸出中只有兩行完成。

10.4 逐步執行

如果你的程序在除錯模式下運行,你還可以逐步執行:一步——一行代碼。 逐步執行有兩個快捷鍵:F7 和 F8——它們都可以執行當前行代碼。 但首先你需要用 break point 停止你的程序。

如果要逐行執行程序,需要將 break point 放在開始處——第一行代碼,並在除錯模式下啟動。

當程式停止後,你可以開始逐行執行。一按 F8 鍵就執行一行。

以下是執行停止後,按一次 F8 鍵後程式的樣子:

breakpoint

第一行——print("Hello") 已經執行,當前行是第二行。你也可以在截圖的下半部分看到,"Hello" 已經輸出到控制台。

10.5. 逐步執行並進入函數

如果你的程式中有自定義的函數,你希望在除錯模式下不僅逐步執行程式,還要進入你的函數, 那麼需要按的不是 F8 鍵,而是 F7 鍵。

假設你正在逐步執行程序,此時在第五行停止。如果按下 F8,IntelliJ IDEA 將直接執行第五行並進入第六行:

debug

但如果按下 F7,IntelliJ IDEA 將逐步執行函數 hello():

debug

這非常簡單。如果你不是特別在意方法內部的發生,那麼按 F8,若在意的話,就按 F7 並逐步執行其代碼。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION