从 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 的内置调试器。
要运行逐行调试,请执行以下操作:
- 在 Visual Studio Code Explorer 中打开链代码项目。在链代码窗格中,右键单击链代码,然后选择在浏览器中打开。
- 必要时将断点连接到您的代码。
- 转到 Run(运行)菜单,然后单击 Start Debugging(开始调试)。这将附加调试器。调试器连接到链代码可能需要几秒钟。
- 从终端调用将执行代码的任何命令。
如果到目前为止您一直在使用 Visual Studio Code 界面测试链代码,则可以遵循 Test Your Chaincode on a Local Hyperledger Fabric Network 中概述的调用语法。
调试器将在断点处停止。然后,您可以开始调试。
- 重新启动调试以反映新的更改。
由于链代码在调试模式下运行,因此不会自动热部署新更改。必须使用 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
此错误目前没有解决方法。