【问题标题】:How can I debug specific functions?如何调试特定功能?
【发布时间】:2018-05-22 05:41:42
【问题描述】:

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

我有一个返回多个字符串的名称函数,但在调试模式下我无法命中断点。我在我的 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)
 }

【问题讨论】:

  • 你用的是什么调试器?如何 ?你没有提供足够的信息。

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


【解决方案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 中显示搜索的下拉结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多