1

我是 Go 新手和 VSCode 新手。我以前也从未使用过 Delve。我正在尝试设置远程调试,但我似乎无法达到断点。

我的项目在 localhost:8080 上托管 REST 端点。为了让 delve 附加和侦听,launch.json 文件应该是什么样子,以便我可以在我的 REST 端点上放置断点?目前,这就是我所拥有的:

"configurations": [
    {
        "name": "Launch",
        "type": "go",
        "request": "launch",
        "mode": "remote",
        "remotePath": "",
        "port": 8080,
        "host": "127.0.0.1",
        "program": "${workspaceRoot}",
        "env": {},
        "args": [],
        "showLog": true
    }

提前致谢!

4

1 回答 1

1

这篇文章提到:

不幸的是,当使用 buffalo dev 运行时,您将无法调试应用程序。您需要构建一个跳过编译器优化(如函数调用内联)的可执行文件。
如果您跳过这些构建标志,Gogland 不会在您的断点处停止

有关“使用 GDB 调试 Go 代码”的更多信息。

gc 编译器生成的代码包括函数调用的内联和变量的注册。这些优化有时会使使用 gdb 进行调试变得更加困难。

之后,您可以按照“远程调试

要使用 VS Code 进行远程调试,您必须首先在目标机器上运行无头 Delve 服务器。例如:

$ dlv debug --headless --listen=:2345 --log

然后您的启动器可以应用。

于 2018-06-19T04:53:17.280 回答