從 Visual Studio 程式碼進行除錯

Blockchain App Builder 包括 Visual Studio Code 的 TypeScript 和 Go 專案的逐行除錯支援。

在 Microsoft Windows 上,將 Visual Studio Code 設定為使用命令提示字元作為預設終端機,而非 PowerShell。在 Visual Studio Code 的終端機功能表中,按一下選取預設設定檔,然後選取命令提示

您必須先在 Visual Studio Code 中安裝必要的 Go 工具,才能對 Go chaincode 專案進行除錯。在 Visual Studio Code 中,開啟命令選盤,然後執行 Go: Install/Update Tools 命令。安裝列出的所有 Go 擴充套件。

Visual Studio Code 使用 Delve 對 Go 進行除錯。當您第一次對 Go 鏈碼進行除錯時,系統會提示您安裝 Delve。繼續之前,請先接受 Delve 安裝。Visual Studio Code 包含 TypeScript 的內建除錯程式。

若要執行逐行除錯:
  1. 在 Visual Studio Code Explorer 中開啟您的鏈碼專案。在鏈碼窗格中,用滑鼠右鍵按一下您的鏈碼,然後選取在瀏覽器中開啟
  2. 在必要時附加中斷點到您的程式碼。
  3. 移至執行功能表,然後按一下開始除錯。這會附加除錯器 。除錯程式可能需要數秒鐘的時間才能附加至鏈碼。
  4. 從終端機呼叫任何會執行您程式碼的指令。

    如果您一直使用 Visual Studio Code 介面來測試您的鏈碼,可以按照在本機 Hyperledger Fabric 網路上測試您的鏈碼中所述的呼叫語法進行操作。

    除錯器將會在您的中斷點停止。您隨後即可開始除錯。

  5. 重新啟動除錯以反映新的變更。

由於鏈碼是在除錯模式下執行,因此不會自動進行新變更的熱部署。您必須使用 Visual Studio Code 中的除錯控制項手動重新啟動除錯程序,才能讓最新的變更生效。

疑難排解

在 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
目前沒有此錯誤的解決方法。