【发布时间】:2021-12-02 16:45:25
【问题描述】:
我正在尝试在 Visual Studio Code 上调试 Go 应用程序,但它似乎不适合我。这是目录树。
运行流程:
为了运行服务器,我首先在终端上运行以下命令
go run -tags=jsoniter cmd/server/*
之后,我通过 Postman 访问 API 来运行各个服务。
调试流程:
同样,我想调试服务(通过 API 命中)。添加一些断点后,我按照说明在.vscode 目录中创建了一个launch.json 文件。
这里是launch.json中的配置
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "cmd/server/",
//"host": "127.0.0.1",
//"port": 8080,
},
设置完成后点击“运行”启动服务器,却报错:Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
我访问了一些网站,他们说这可能是因为我为 Apple M1 芯片使用了错误的 Go 版本。我检查并按照建议使用了正确的版本,但我仍然遇到了同样的问题
$go version
>go version go1.17.3 darwin/arm64
奖励:如果我取消注释两个配置行"host" 和"port",VCS 会告诉我文件错误。当我注释这两行时,它会尝试在随机端口 57169 上启动一个服务器。但是它当然会陷入上述错误。
问题:
- 我的调试有什么问题吗?目前,我必须通过将
log添加到代码中并跟踪它们来进行调试。我认为这不是最有效的。 - 如果 VCS 不适合我(很遗憾),您会建议使用其他 IDE/方法进行调试吗?
更新:我按照某人的建议在 GoLand 上进行了尝试,但它对我也不起作用。我收到了同样的错误
【问题讨论】:
标签: go debugging visual-studio-code apple-m1