Golang命令行进行debug调试操作

决定转身就不要频频回头,酷的人才会被记得久一些。早安!没什么可懊恼的,能被拆散的,其实都不是属于你的,继续下一个吧。早安!

GoLang调试工具Delve

1.先获取呗:

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

2.编写测试代码呗:

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 启动:

dlv debug test.go

4.打断点:

4.1):对方法打断点:

b main.函数名

4.2):运行到断点处:

c

4.3:对某一行打断点:

需要得到文件的位置再打断点:

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

至于如何进行与ide上的操作一致的呢: 通过n,s

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

如何查看变量呢:p

p testName 则会输出testName的值

args:则会输出所有方法参数信息

locals:则会输出所有的本地变量

emmmmmmmm golang 的命令行编译感觉好不方便,还是想办法搞到ide上吧

用go玩Debug, Info, Error级别的log

直接上代码:

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");
}

就这样。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

您可能有感兴趣的文章
golang中命令行库cobra的如何使用方法示例

Go语言中如何使用flag包对命令行进行参数解析的方法

go语言执行windows下命令行的方法

Go语言执行系统命令行命令的方法

Go语言命令行操作命令详细介绍