你可以在本地除錯 WASM 模組,方法是利用 Visual Studio Code 中的斷點和內建除錯器。 本文將說明如何在 Azure IoT 操作 本地開發環境中設定並使用除錯器。
在完成本文步驟前,先建立本地開發環境,並在本地建置並執行圖形應用程式。 欲了解更多資訊,請參閱 建構 WASM 模組以了解資料流程。
先決條件
- Visual Studio Code
- Azure IoT 操作 Data Flow 擴充套件 用於 VS Code。
- CodeLLDB 擴充功能 用於 VS Code 以支援除錯 WASM 模組
- Docker
- Docker 映像檔如建置用於資料流的 WASM 模組
執行「 使用結構登錄檔搭配 WASM 模組 」範例來建立範例工作區。
設定偵錯
在工作區打開檔案
operators/filter/src/lib.rsschema-registry-scenario。點擊行號旁的邊界或按
filter,找到F9函式並設定斷點。fn filter(input: DataModel) -> Result<bool, Error> { let DataModel::Message(message) = input else { return Err(Error {message: "Unexpected input type.".to_string()}); }; // ... rest of function }
進行除錯的建置
按
Ctrl+Shift+P開啟指令面板並搜尋 Azure IoT 操作: Build All Data Flow Operators。選擇 除錯 作為建置模式。 等待建置完成。
啟用調試後執行
按 Ctrl+Shift+P 開啟指令面板並搜尋 Azure IoT 操作: Start Development Environment。 選擇 除錯 作為執行模式。
按下
Ctrl+Shift+P,搜尋 Azure IoT 操作: Run Application Graph。請選擇圖表檔案。
lldb-debug.graph.dataflow.yaml選擇 除錯 作為執行模式。
在你的 VS Code 工作區選擇
data輸入資料的資料夾。 DevX 容器會啟動,執行帶有樣本輸入的圖表。DevX 容器啟動後,你會看到 host-app 容器以
lldb-server開始進行除錯。
除錯 WASM 模組
執行會自動在你於
filter函式中設定的斷點停止。使用 VS Code 除錯介面來:
- 在 變數 面板中檢查變數值。
- 透過
F10或F11逐步完成程式碼。 - 請在 通話堆疊 面板中查看通話堆疊。
- 為特定變數或表達式設置監控。
按下或選擇
F5按鈕繼續執行。除錯器會在每則正在處理的訊息的斷點停止,讓你能檢視資料流。
偵錯提示
- 使用 除錯主控台 來評估表達式並檢查執行狀態。
- 透過右鍵點擊斷點並加入條件來設定條件斷點。
- 使用
F9來切換斷點,而不會移除它們。 - 變數面板顯示區域變數與函數參數的當前狀態。
此除錯功能讓您能排除問題、了解資料流,並在部署至生產環境前驗證 WASM 模組邏輯。