如何调试特定功能?

How can I debug specific functions?

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

我有一个 returns 几个字符串的名称函数,但我无法在调试模式下命中断点。我在我的 Name 函数中放置了一个断点,并将 url 放置如下: 127.0.0.1:52238/name 但是它没有到​​达断点。这里会发生什么?如果我 运行 应用程序正常并放置 http://localhost:5000/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)
 }

您似乎在使用 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.

中显示搜索的下拉结果