Home  >  Article  >  Backend Development  >  How to debug golang

How to debug golang

(*-*)浩
(*-*)浩Original
2019-12-27 10:51:592844browse

How to debug golang

Devle is a great golang debugging tool that supports multiple debugging methods. You can run the debugging directly, or attach to a running golang program for debugging.                                                                                                                             (Recommended learning: go)

When there is a problem with the online golang service, Devle is an essential online debugging tool. If you use docker, you can also enter Devle into docker In the image, debug the code.

Installing Devle

Installing Devle is very simple, just run go get:

go get -u github.com/derekparker/delve/cmd/dlv

If your go version For 1.5, please set the environment variable GO15VENDOREXPERIMENT=1 before running go get. My go version is 1.10, no need to set it.

Use Devle to debug golang services

First write a simple web service, and then use Devle to debug it.

Create main.go in the $GOPATH/src/github.com/mytest folder

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

const port  = "8000"

func main() {
    http.HandleFunc("/hi", hi)

    fmt.Println("runing on port: " + port)
    log.Fatal(http.ListenAndServe(":" + port, nil))
}

func hi(w http.ResponseWriter, r *http.Request) {
    hostName, _ := os.Hostname()
    fmt.Fprintf(w, "HostName: %s", hostName)
}

Simple, a web service running on port 8000, access hi Returns the name of the machine. The line numbers of the above code are very useful and will be used later when we break points.

The above is the detailed content of How to debug golang. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn