是否可以从Visual Studio Code调试go revel框架?

zap*_*ico 4 go revel visual-studio-code

我正在尝试使用Visual Studio调试Revel应用程序,但无法正常工作。

我已经看到了这个问题如何在Visual Studio代码(vscode)中调试Revel Framework(golang)应用程序,但目前还没有答案...

我已经尝试使用此配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch",
      "type": "go",
      "request": "launch",
      "mode": "debug",
      "remotePath": "",
      "port": 2345,
      "host": "127.0.0.1",
      "program": "~/code/go/bin/revel",
      "env": {},
      "args": [],
      "showLog": true
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误: Failed to continue: "The program attribute must point to valid directory, .go file or executable."

我认为它必须是在这里运行的反叛二进制文件,但是我不知道如何传递应用程序路径,它应该放在“ args”中吗?

put*_*utu 6

是的,有可能。

  1. 假设GOPATHC:\Work\golang
  2. Revel项目名称为myapp,因此项目的位置(工作区)将为C:\Work\golang\src\myapp
  3. 对控制器等进行一些更改...
  4. 使用来运行该应用程序revel run myapp,然后按CTRL+C退出。此步骤对于生成相应的go文件是必需的。生成的文件,即main软件包将在以下位置可用${workspaceRoot}/app/tmp/main.go
  5. 配置launch.json如下:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "remotePath": "",
                "port": 2345,
                "host": "127.0.0.1",
                "env": {},
                "showLog": true,
                "program": "${workspaceRoot}/app/tmp/",
                "args": ["-importPath", "myapp", "-srcPath", "c:\\work\\golang\\src",  "-runMode", "dev"]
            }
        ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  6. 重要部分是programargs参数,而其他参数未修改。

  7. 设置breakpoint并启动delve调试器...

调试狂欢应用程序

编辑:

  1. 设置args参数["-importPath", "myapp", "-srcPath", "${workspaceRoot}/..", "-runMode", "dev"]也可以,并且我认为这也应该在其他平台(Mac,Linux)上也可以。
  2. 该错误消息与delve问题有关。参见https://github.com/Microsoft/vscode-go/issues/986