Home  >  Article  >  Backend Development  >  How to debug when developing in golang

How to debug when developing in golang

angryTom
angryTomOriginal
2020-03-12 16:53:011868browse

How to debug when developing in golang

How to debug during golang development

1. Get the Delve tool first

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

2. Write test code

func main(){
 http.HandleFunc("/test",func(writer http.ResponseWriter,req *http.Request){
 //TODO
 })
 log.Fatal(http.ListenAndServe("127.0.0.1:8080",nil))
}

3. Debug startup

dlv debug test.go

4. Break point

4.1): Break point for method:

b main.函数名

4.2): Run to break point:

c

4.3: Break point for a certain line:

Need to get the file Break point at the position:

b /Users/joker/go/src/…/test.go:14 对14行打断点

As for how to perform the same operation as on the ide: How to view the variables through n,s

n:相当于Java-Eclipse的F6
s:相当于Java-Eclipse的F5

: p

p testName 则会输出testName的值
args:则会输出所有方法参数信息
locals:则会输出所有的本地变量

Use go to play Debug, Info, and Error level logs

Directly upload the code:

package mylog
import (
    "log"
    "os"
)
var (
    Debug *log.Logger
    Info *log.Logger
    Error *log.Logger
)
func init() {
    log.Println("init ...")
    Debug = log.New(os.Stdout, "[DEBUG] ", log.Ldate|log.Ltime|log.Lshortfile)
    Info = log.New(os.Stdout, "[INFO] ", log.Ldate|log.Ltime|log.Lshortfile)
    Error = log.New(os.Stderr, "[ERROR] ", log.Ldate|log.Ltime|log.Lshortfile)
}
package main
import "mylog"
func main(){
  mylog.Debug.Println("good");
  mylog.Info.Println("good");
  mylog.Error.Println("good");
}

That’s it.

For more golang knowledge, please pay attention to the golang tutorial column on the PHP Chinese website.

The above is the detailed content of How to debug when developing in 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