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如何调用Linux命令详解
本文介绍的是Golang使用 os/exec 来执行 Linux 命令,分享出来供大家参考学习,下面来看看详细的介绍: 下面是一个简单的示例: package main import ( "fmt" "io/ioutil" "os/exec" ) func main() { cmd := exec.Command("/bin/bash", "-c", `df -lh`) //创建获取命令输出管道 stdou
-
golang中命令行库cobra的使用方法示例
简介 Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序.下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags 使用Cobra很容易的生成应用程序和命令,使用cobra create appname和cobra add cmdname 如果命令输入错误,将提供智能建议,如 ap
-
golang执行命令获取执行结果状态(推荐)
这几天在用golang写一个工具,要执行外部命令工具,而且还要将外部命令工具输出的日志也要输出出来.网上找了一下,资料很多,关键是执行的结果成功或失败状态没找到好的方法获取到. 刚开始想的是看错误日志,如果有错误日志,那么就是执行失败.测试的时候发现这样不行,发现有些时候会用error输出日志,但不一定就是执行失败.后来想用日志中的关键字匹配,因为有些命令执行成功或失败都是有关键字输出的,测试发现也不太好. 最后没办法,看了一下Cmd.Wait()方法的实现,突然眼前一亮,找到方法了,有一个Cm
-
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)) }
-
如何用命令行进入mysql具体操作步骤
如何用命令行进入mysql?最近无意在论坛上看到有朋友提出了这样一个问题,下面也有网友给出了答案,特意在此跟大家进行分享! Mysql to Oracle Mysql转换为ORACLE数据库的软件 免费版用命令行进入mysql方法: windows打开命了行,在左下角开始,运行,cmd,mysql 然后就要让你数据密码的,当然前提是你的mysql安装正确,网上有好多图文并茂的安装教程.开始,运行,cmd [ ,cd mysql安装目录/bin ], mysql -u userName -p Pa
-
mysql密码中有特殊字符&在命令行下登录的操作
在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如果密码中没有特殊字符&,会直接进入数据库sql命令行下,如果有特殊字符&,那么就会出现如下提示: -bash: syntax error near unexpected token `&' 一般情况,我们可以通过命令mysql -hhost -uusername -p db然后根据提示手动输入密码. 另外,这里可以对特殊字符的密码做处理. 1.
-
Golang开发命令行之flag包的使用方法
目录 1.命令行工具概述 2.flag包介绍 3.flag包命令行参数的定义 4.flag包命令行参数解析 5.flag包命令行帮助 6.flag定义短参数和长参数 7.示例 1.命令行工具概述 日常命令行操作,相对应的众多命令行工具是提高生产力的必备工具,鼠标能够让用户更容易上手,降低用户学习成本. 而对于开发者,键盘操作模式能显著提升生产力,还有在一些专业工具中, 大量使用快捷键代替繁琐的鼠标操作,能够使开发人员更加专注于工作,提高效率,因为键盘操作模式更容易产生肌肉记忆 举个栗子:我司业务
-
Golang实现简易的命令行功能
目录 前言 开始 flag.String flag.Int flag.StringVar flag.IntVar 定义命令行参数 实现 -f -v 是否强制拷贝 copyFileAction 实现 copyFile 效果图 完整代码 前言 一次偶然的想法,想知道为什么在终端输入那些命令行后,就执行了对应的操作,这转化为代码,应该怎么实现呢? 既然有了问题,那我们就来解决问题吧! 首先我认为想做命令行操作,那就得先”认识“命令行(当然这里指你的代码认识),所以我认位有两个步骤: 解析命令行 实现对
-
Mysql经典高逼格/命令行操作(速成)(推荐)
由于要学习搭建服务器和数据库,所以最近开始自学sql语言了,至于写数据库就用比较基础的Mysql数据库了,虽然Mysql已经被互联网公司所淘汰掉了,他们都在使用Nosql,SQL server等sql语言,最终仍然决定从基础入手.经过简单的决定之后,就用逼格极高的cmd命令行来写了.Mysql数据库的安装方法这里就不给出详细的教程了,网上有好多安装教程可以自行选择安装. 1.第一步,我们要先在Mysql中建立一个库 以Mysql5.0为例,安装好以后从命令行登录Mysql: 在命令行输入:mys
-
通过Golang实现linux命令ls命令(命令行工具构建)
目录 ls 命令 os.Args 读取参数 pflag 小结 ls 命令 要实现ls,首先先我们复习一下ls命令. ls不加任何参数,表示查询当前目录下的文件/文件夹 ls后面加上路径,列出所有,不包含隐藏文件/文件夹 ls -a列出所有,包括以.开头的隐藏文件 此命令还有很多功能,这一节的重点是命令行程度的编写,就实现上面四个. os.Args 读取参数 定义如下,一个数组.该数组长度由参数个数决定,第一个参数为程序本身,后面为参数列表. var Args []string 比如ls -l,A
-
使用Golang快速构建出命令行应用程序
目录 urfave/cli spf13/cobra 在日常开发中,大家对命令行工具(CLI)想必特别熟悉了,如果说你不知道命令工具,那你可能是个假开发.每天都会使用大量的命令行工具,例如最常用的Git.Go.Docker等. 不管是做技术开发还是业务开发,都会有开发命令行程序的场景.例如如果是开发框架,会开发一个命令行工具帮助使用者快速生成项目结构:如果是开发一个定时任务程序,会开发一个命令行工具来启动这个任务.本文就介绍两个专门用来开发命令行应用程序的库. urfave/cli urfave/
-
使用.NET命令行编译器编译项目(如ASP.NET、C#等)
源程序最好有.csproj或.vbproj文件,没有的话,要花些时间调试 下面我以VB.NET做示例讲解一下: 从proj我们可以获取以下有用信息 Settings小节中有很多配置选项,对应一些编译器选项 <References>小节中是项目的引用,第3方类库最好用绝对路径 <Imports>小节中是要导入的一些命名空间 <Files>小节中有项目的所有文件,选取 BuildAction = "Compile"的文件 用vbc测试了一下,很容易,注意
-
Golang操作命令行的几种方式总结
目录 前言 简单使用 使用Shell执行命令 简单封装Shell执行命令 前言 在实际开发工作中,我们经常使用命令行进行日志分析.程序部署.debug程序等工作.在Linux下,|.grep.find.xagrs.awk等工具是非常强大的,可以很容易的完成各种数据处理.在需求比较简单的情况下,我们会直接命令行:如果再复杂一点,我们会编写简单的Shell脚本:如果业务更加复杂,shell已经不适合进行处理了,我们就会使用我们熟悉的语言进行编码,如果你刚好使用Golang,那么可以使用Golang内
随机推荐
- go语言map字典删除操作的方法
- 基于jquery实现鼠标滚轮驱动的图片切换效果
- jQuery中ajax的post()方法用法实例
- 在oracle 数据库查询的select 查询字段中关联其他表的方法
- python写的一个squid访问日志分析的小程序
- InnoDB的关键特性-插入缓存,两次写,自适应hash索引详解
- JavaScript 函数节流详解及方法总结
- $.ajax()方法进行网页间传值示例
- C++11的新特性简单汇总介绍 (二)
- javascript中checkbox使用方法简单实例演示
- Apache提示 the requested operation has failed无法启动的解决方法大全
- 解析Android中实现滑动翻页之ViewFlipper的使用详解
- jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jquery实现鼠标滑过显示二级下拉菜单效果
- 基于spring+hibernate+JQuery开发之电子相册(附源码下载)
- 完美兼容各大浏览器的jQuery插件实现图片切换特效
- 针对ACCESS漏洞又一发现
- Android中LeakCanary检测内存泄漏的方法
- Maven配置文件pom.xml详解
- 在Zeus Web Server中安装PHP语言支持
