使用除錯器工具

開始使用

開發工具中包含了一個完整的原始碼級除錯器,支援斷點、單步調試以及變數檢視。

當你開啟除錯器標籤頁時,你應該會看到你的應用入口點的原始碼已經載入到了除錯器中。

為了瀏覽更多的應用原始碼,點選 Libraries(右上角)或者使用快捷鍵 ⌘ + P / ctrl + P。這會開啟函式庫視窗並允許你搜索其他源檔案。

Screenshot of the debugger tab

設定斷點

可以點選原始碼區左邊空白(行數展示欄內)來設定斷點。單擊一次就設定了一個斷點,並且也會在 Breakpoints 區域展示出來。再次單擊則取消斷點。

呼叫棧和變數區

當應用執行到某個斷點時,就會在此處暫停,除錯器也會在原始碼區顯示當前暫停的位置。此外,Call stackVariables 區域也會顯示暫停時的呼叫棧以及選中幀的本地變數。在 Call stack 選擇其他的幀可以改變變數區的內容。

Variables 內,可以透過點選物件展開檢視其內容來檢視獨立的物件。指標停在 Variables 區域的物件上時會呼叫該物件的 toString() 方法並展示結果。

單步調試原始碼

三個單步調試按鈕在暫停後會變為可用狀態。

  • 使用 Step in 來進入被呼叫的方法,在遇到方法內的第一行可執行程式碼時結束。

  • 使用 Step over 直接執行某個方法呼叫而不進入內部;該按鈕在當前方法內按行執行。

  • 使用 Step out 來跳出當前方法,這種方式會直接執行完所有當前方法內的語句。

另外,Resume 按鈕的作用是恢復應用的正常執行。

指令行輸出

執行中應用的指令行輸出(stdout 和 stderr)會在指令行中輸出,該區域在原始碼區下方。Logging view 中也可以看到相應輸出。

異常跳出

請在除錯器檢視頂部切換 Ignore 下拉選單來適配異常跳出的行為。

Break on unhandled exceptions:只在斷點被認為應用內程式碼無法捕獲時暫停執行。 Breaking on all exceptions:無論是否被捕獲都會暫停執行。

已知問題

當 Flutter 應用執行熱過載時,使用者的斷點會被清除。

其他資源

訪問 Debugging 頁面來獲取更多關於除錯器和效能分析的訊息。