如何调试特定功能?

时间:2018-05-22 05:41:42

标签: go visual-studio-code vscode-debugger

我的网站有几个不同的功能。我可以使用localhost:5000 /访问我的网站,当我使用vscode-go调试器在调试模式下运行时,我收到以下消息   API服务器收听:127.0.0.1:52238

我有一个返回多个字符串的Name函数,但我无法在调试模式下点击断点。我在我的Name函数中放了一个断点,并按如下方式放置url: 127.0.0.1:52238/name 但是它没有命中断点。这可能会发生什么?我的代码如下,如果我正常运行应用程序并放置http://localhost:5000/name然后一切正常,但在调试模式下, 127.0.0.1:52238/name 没有达到断点或页面。我使用Go作为后端api所以我需要点击url端点来查看正在发生的事情。 有没有我可以调试端口:5000

  -- Main 
 package main

 import (
     "github.com/gorilla/mux"
     "runtime"
     "./Models"
     "./Controllers"
 )

 func main() {

  Controllers.CircleRoutes(r)

     srv := &http.Server{
         ReadTimeout:  20 * time.Second,
         WriteTimeout: 20 * time.Second,
         IdleTimeout:  120 * time.Second,
         Addr:         ":5000",
     }

     srv.ListenAndServe()
    }



   // Circles Route

 package Controllers

func Name(w http.ResponseWriter, r *http.Request) {

    var result string
    r.ParseForm()
    result = "Success"

    io.WriteString(w, result)
}

 func CircleRoutes(r *mux.Router) {
     r.HandleFunc("/name", Name)
 }

1 个答案:

答案 0 :(得分:1)

看起来你正在使用vscode-go调试器。 您可以从vscode中的launch.json配置文件配置端口。

配置应如下所示:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${workspaceRoot}",
            "env": {
                "GOPATH": <your GOPATH>
            },
            "args": [],
            "showLog": true
        }
    ],
    "go.lintTool": "gometalinter"
}

您可以从上面的设置更改端口。要查找launch.json,只需ctrl+P并输入launch.json,它将在您的vscode中显示搜索的下拉结果。