從 Visual Studio 程式碼進行除錯

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

在 Microsoft Windows 上,設定 Visual Studio 程式碼以使用「命令提示」作為預設終端機,而非 PowerShell。在 Visual Studio 程式碼的終端機功能表中,按一下選取預設設定檔,然後選取命令提示

您必須先在 Visual Studio Code 中安裝必要的 Go 工具,才能夠對 Go 鏈碼專案進行除錯。在 Visual Studio 程式碼中,開啟「命令選用區」,然後執行 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
目前沒有解決此錯誤的解決方法。