从 Visual Studio Code 调试

Blockchain App Builder 包括 Visual Studio Code 对 TypeScript 和 Go 项目的逐行调试支持。

在 Microsoft Windows 上,将 Visual Studio Code 配置为使用命令提示符作为默认终端,而不是 PowerShell。在 Visual Studio Code 的终端菜单中,单击 Select Default Profile ,然后选择 Command Prompt

在调试 Go 链代码项目之前,必须在 Visual Studio Code 中安装所需的 Go 工具。在 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. 转到 Run(运行)菜单,然后单击 Start Debugging(开始调试)。这将附加调试器。调试器连接到链代码可能需要几秒钟。
  4. 从终端调用将执行代码的任何命令。

    如果到目前为止您一直在使用 Visual Studio Code 界面测试链代码,则可以遵循 Test Your Chaincode on a Local Hyperledger Fabric Network 中概述的调用语法。

    调试器将在断点处停止。然后,您可以开始调试。

  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
此错误目前没有解决方法。