欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Golang命令行进行debug调试操作

程序员文章站 2024-02-07 09:20:04
golang调试工具delve 1.先获取呗: go get -u github.com/derekparker/delve/cmd/dlv 2.编写测试...

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

就这样。

总结

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