使用偵錯程式工具
開始使用
開發工具中包含了一個完整的原始碼級偵錯程式,支援斷點、單步除錯以及變數檢視。
When you open the debugger tab, you should see the source for the main entry-point for your app loaded in the debugger.
In order to browse around more of your application sources, click Libraries
(top right) or use the hot key command ⌘ + P
/ ctrl + P
. This will open the
libraries window and allow you to search for other source files.
設定斷點
可以點選原始碼區左邊空白(行數展示欄內)來設定斷點。單擊一次就設定了一個斷點,並且也會在 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 頁面來獲取更多關於偵錯程式和效能分析的資訊。