從 Visual Studio 程式碼除錯
Blockchain App Builder 包含 Visual Studio Code 對 TypeScript 和 Go 專案的逐行除錯支援。
在 Microsoft Windows 上,將 Visual Studio 程式碼設定為使用命令提示作為預設終端機,而非 PowerShell。在 Visual Studio 程式碼的終端機功能表中,按一下選取預設設定檔,然後選取命令提示。
您必須先在 Visual Studio Code 中安裝必要的 Go 工具,才能對 Go chaincode 專案進行除錯。在 Visual Studio 程式碼中,開啟「命令選盤」,然後執行 Go: Install/Update Tools
命令。安裝列出的所有 Go 擴充套件。
Visual Studio Code 使用 Delve 進行 Go 除錯。當您第一次對 Go 鏈碼進行除錯時,系統會提示您安裝 Delve。繼續之前,請先接受 Delve 安裝。Visual Studio Code 包含 TypeScript 的內建除錯程式。
若要執行逐行除錯,請執行下列動作:
- 在 Visual Studio Code Explorer 中開啟您的 chaincode 專案。在鏈碼窗格中,用滑鼠右鍵按一下您的鏈碼,然後選取在瀏覽器中開啟。
- 視需要將中斷點附加到您的程式碼。
- 移至執行功能表,然後按一下啟動除錯。這會附加除錯程式。除錯程式可能需要幾秒鐘的時間才能連附至鏈碼。
- 從終端機呼叫任何會執行程式碼的指令。
如果您目前使用 Visual Studio Code 介面來測試您的鏈碼,可以依照在本機 Hyperledger Fabric 網路上測試您的鏈碼中所述的呼叫語法進行。
除錯器將會在您的中斷點停止。您可以接著啟動除錯。
- 重新啟動除錯以反映新的變更。
由於鏈碼以除錯模式執行,因此不會自動進行新變更的熱部署。您必須使用 Visual Studio 程式碼中的除錯控制項手動重新啟動除錯處理作業,才能讓最新的變更生效。
疑難排解
在 Windows 11 中,您可能會遇到類似以下的錯誤:
dlv: failed to install dlv(github.com/go-delve/delve/cmd/dlv@latest): Error: Command failed:
C:\Program Files (x86)\Go\bin\go.exe get -x github.com/go-delve/delve/cmd/dlv@latest
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list
# get https://proxy.golang.org/github.com/@v/list
# get https://proxy.golang.org/github.com/go-delve/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list
# get https://proxy.golang.org/github.com/@v/list: 410 Gone (0.420s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list: 410 Gone (1.040s)
# get https://proxy.golang.org/github.com/go-delve/@v/list: 410 Gone (1.062s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list: 410 Gone (1.066s)
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list: 200 OK (1.448s)
go: found github.com/go-delve/delve/cmd/dlv in github.com/go-delve/delve v1.8.3C:\Users\<UserName>\go\pkg\mod\github.com\go-delve\delve@v1.8.3\service\debugger\debugger.go:28:2:found packages native (proc.go) and
your_operating_system_and_architecture_combination_is_not_supported_by_delve(support_sentinel.go) in C:\Users\Asus\go\pkg\mod\github.com\go-delve\delve@v1.8.3\pkg\proc\native
此錯誤目前沒有解決方法。