使用除錯器工具
開始使用
開發工具中包含了一個完整的原始碼級除錯器,支援斷點、單步調試以及變數檢視。
當你開啟除錯器標籤頁時,你應該會看到你的應用入口點的原始碼已經載入到了除錯器中。
為了瀏覽更多的應用原始碼,點選 Libraries(右上角)或者使用快捷鍵 ⌘ + P
/ ctrl + P
。這會開啟函式庫視窗並允許你搜索其他源檔案。
設定斷點
可以點選原始碼區左邊空白(行數展示欄內)來設定斷點。單擊一次就設定了一個斷點,並且也會在 Breakpoints 區域展示出來。再次單擊則取消斷點。
呼叫棧和變數區
當應用執行到某個斷點時,就會在此處暫停,除錯器也會在原始碼區顯示當前暫停的位置。此外,Call stack
和 Variables
區域也會顯示暫停時的呼叫棧以及選中幀的本地變數。在 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 頁面來獲取更多關於除錯器和效能分析的訊息。