跳到主內容

使用偵錯程式

如何使用 DevTools 的原始碼級別偵錯程式。

入門

#

DevTools 包含一個完整的原始碼級別偵錯程式,支援斷點、單步執行和變數檢查。

開啟偵錯程式選項卡時,您應該看到應用程式的主要入口點對應的原始碼載入到偵錯程式中。

為了瀏覽應用程式的更多原始碼,請單擊(右上角)或按 Ctrl / Cmd + P。 這將開啟庫視窗,並允許您搜尋其他原始檔。

Screenshot of the debugger tab

設定斷點

#

要設定斷點,請單擊原始碼區域中的左邊距(行號標尺)。 單擊一次會設定一個斷點,該斷點也應顯示在左側的斷點區域中。 再次單擊會刪除斷點。

呼叫堆疊和變數區域

#

當您的應用程式遇到斷點時,它會在此處暫停,DevTools 偵錯程式會在原始碼區域中顯示暫停的執行位置。 此外,呼叫堆疊變數區域將填充當前暫停隔離區的當前呼叫堆疊以及所選幀的區域性變數。 選擇呼叫堆疊區域中的其他幀會更改變數的內容。

變數區域內,您可以展開物件以檢視其欄位,從而檢查單個物件。 將滑鼠懸停在變數區域中的物件上會為該物件呼叫toString()並顯示結果。

單步執行原始碼

#

暫停時,三個單步執行按鈕變為活動狀態。

  • 使用步入單步進入方法呼叫,在呼叫的方法的第一行可執行程式碼處停止。
  • 使用步過單步執行方法呼叫;這會在當前方法中逐步執行原始碼行。
  • 使用步出退出當前方法,而無需在任何中間行處停止。

此外,繼續按鈕會繼續應用程式的常規執行。

控制檯輸出

#

正在執行的應用程式的控制檯輸出(stdout 和 stderr)顯示在控制檯中,位於原始碼區域下方。 您也可以在日誌記錄檢視中檢視輸出。

斷點異常

#

要調整停止異常的行為,請切換偵錯程式檢視頂部的忽略下拉選單。

斷點未處理的異常僅在應用程式程式碼認為該斷點未捕獲時才會暫停執行。 斷點所有異常會導致偵錯程式暫停,無論應用程式程式碼是否捕獲了該斷點。

已知問題

#

對 Flutter 應用程式執行熱重啟時,使用者斷點將被清除。

其他資源

#

有關除錯和分析的更多資訊,請參閱除錯頁面。