Go语言中文网 为您找到相关结果 50

Go语言debug调试

文:http://www.cnblogs.com/yourihua/archive/2012/06/15/2541745.html说明:作为一门静态语言,似乎支持调试是必须的,而且,Go初学者喜欢问的问题也是:大家都用什么IDE?怎么调试?其实,Go是为多核和并发而生,真正的项目,你用单步调试,原本没问题的,可能会调出有问题。更好的调试方式是跟PHP这种语言一样,用打印的方式(日志或print)。当然,简单的小程序,如果单步调试,可以看到一些内部的运行机理,对于学习还是挺有好处的。下面介绍一下用GDB调试Go程序:(目前IDE支持调试Go程序,用的也是GDB。要求GDB 7.1以上)以下内容来自雨痕的《Go语言学习笔记》(下载Go资源):默认情况下,编译过的二进制文件已经包含了 DWARFv...阅读全文

博文 2014-12-14 09:00:07 halcyonbaby

linux 下 安装go

首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 通过命令行下载资源包,wget是一个下载工具,-c是支持断点续传的参数。 下载完成后,解压 tar -C /usr/local -xzf go1.4beta1.linux-amd64.tar.gz 然后再cd 进入 go/src 目录,执...阅读全文

博文 2015-04-19 03:00:01 ilahsa

golang实现tcp通信例子

tcp/udp ip通信是当前重要的通信方式。 当然对于golang开发者而言,实现tcp通信也是必要的。本文的内容主要是基于《Go语言四十二章经》简书地址:https://www.jianshu.com/nb/29056963的详细讲解 本文的例子分为服务端与客户端两部分: 服务端: package main import ( "bufio" "fmt" "io" "net" "time" ) //tcp server 服务端代码 func main() { //定义一个tcp断点 var tcpAddr *net.TCPAddr //通过ResolveTCPAddr实例一个具体的tcp断点 tcpAddr,_ = net.ResolveTCPAddr("tcp","127.0.0.1:9...阅读全文

博文 2019-02-03 19:34:43 乐乐J

使用 GoLand 进行调试的要点

*由 [Florin Păţan](https://blog.jetbrains.com/go/author/florin-patanjetbrains-com/) 于 [2019 年 2 月 14 日 ](https://blog.jetbrains.com/go/2019/02/14/debugging-with-goland-essentials/) 发表* 在今天的帖子中,我们将继续探索 GoLand 中的调试器功能。如果你想知道如何配置调试器。请查看我们之前的帖子,其中包含关于如何配置 IDE 在各种方案中工作的所有信息。 我们将讨论: * [控制执行流程](# 控制执行流程 ) * [计算表达式](# 计算表达式 ) * [查看自定义值](# 查看自定义值 ) * [更改变量值]...阅读全文

博文 2019-05-29 19:44:16 piglig

windows liteide 调试 beego

在windows下用liteide调试beego,下了断点无反应,这是因为windows版本golang安装的时候编译参数的问题,默认是-o2,修改goroot src目录下的make.bat文件,将-O2删除,添加-ggdb选项,重新执行all.bat删除gopath下已经编译的库 进入liteide 编译断点调试,就可以了,有时候可能不准,对于beego来说,但是多试几次是可以跟踪到断点的 linux也可以这样设置一...阅读全文

博文 2015-04-23 18:00:03 悠米海

golang ftp客户端示例 支持断点续传

package main import ( ftp4go "github.com/shenshouer/ftp4go" "fmt" "os" ) var( downloadFileName = "DockerToolbox-1.8.2a.pkg" BASE_FTP_PATH = "/home/bob/" // base data path in ftp server ) func main() { ftpClient := ftp4go.NewFTP(0) // 1 for debugging //connect _, err := ftpClient.Connect("172.8.4.101", ftp4go.DefaultFtpPort, "") if err != nil { fmt....阅读全文

博文 2015-11-18 13:00:02 shenshouer

Golang实现断点续传

https://github.com/artificerpi/oget HTTP Range 请求 HTTP Range请求允许服务器向客户端发送HTTP消息体的一部分数据。Partial Requests在使用比较大的网络媒体文件或者在下载文件时提供暂停和恢复功能时很有用。 这也是下载时实现HTTP断点续传的一个关键。 HTTP 206 (Partial Content) 如果服务器能返回HTTP 206请求,我们就知道它能够支持Range request. # curl -I https://www.baidu.com/ -H "Range: bytes=0-" HTTP/1.1 206 Partial Content Cache-Control: private, no-cache, ...阅读全文

博文 2017-12-26 04:30:01 7explore-share

Golang Go语言断点续传

package main import ( "http" "os" "io" "strconv" ) const ( UA = "Golang Downloader from Kejibo.com" ) func main() { f, err := os.OpenFile("./file.exe", os.O_RDWR, 0666) //其实这里的 O_RDWR应该是 O_RDWR|O_CREATE,也就是文件不存在的情况下就建一个空文件,但是因为windows下还有BUG,如果使用这个O_CREATE,就会直接清空文件,所以这里就不用了这个标志,你自己事先建立好文件。 if err != nil { panic(err) } stat, err := f.Stat() //获取文件状态 ...阅读全文

博文 2015-02-26 12:32:57 nulijiabei

在中国linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 本文首发于:http://www.zzzzy.com/201411023370.html 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c htt...阅读全文

博文 2015-02-26 13:00:01 pkufergus

Golang的开发环境配置之SlickEdit篇

Golang的开发环境通常有如下三种: 1. vi, emacs, notepad++ 2. Sublime Text 2/3 3. LiteIDE 不过,今天我想体验一下在slickedit当中使用Golang的感觉。 我使用的版本是slickedit v19.0.1.1 64位版。 先配置好Golang的环境变量(网上有很多文章讲到如何配置) 最重要的一步就是,在安装目录的win子目录下,找到原先的gdb文件,并用下面的gdb替换之后就可以正常进入调试了 替换的gdb文件下载 好了,下面就可以体验一下在slickedit当中开发go程序的乐趣了。 个人认为,slickedit更加适合大型的go项目开发,好处当然是多多了,就不一一讲明了。 其实,不管是vi,sublime text,Lit...阅读全文

博文 2015-04-04 03:00:00 russinovich

给开发者介绍一款可连接AS和Eclipse实现远程调试的工具

**前言**: 移动开发者们在开发一款APP或者手游的时候,都会用到模拟器或者真机来调试应用,可是模拟器的缺点大家都知道,速度慢、卡顿、调试结果跟实际情况有差别。而真机的购机成本又很高。所以想为大家推荐一款新型开发工具,可以用来代替模拟器和传统的[真机调试](http://www.testbird.com/tphone-remote-debug/ ) 方法。 **[Testbird——云手机](https://dt.testbird.com/sign_up/?i18n=zh-cn&cl=eBn2yB&invite=YjX97B/ ) ** 从本质上来讲,云手机也属于真机调试,但是你却不需要花费很多钱去购买,因为它的操作模式可以让你从你的电脑端上远程连接到位于Testbi...阅读全文

windows下 sublime text2配置gdb 调试golang

1. 下载gdb for windows ,点此下载 2.解压后,将目录添加到环境变量path 3. 安装sublimeGdb, 打开sublime text2 ,ctrl+shift+p, install package,选择sublimeGdb,回车 4.配置setting , 在sublime text2 中,选择菜单 Preferences--Package settings--SublimeGdb--Setting Default ,设置其下两项。workingdir是gopath的工作区,也就是项目exe生成的路径。commandline 最重要是 后面main.exe 替换成你的可执行文件。 // Example: ${folder:/path/to/file} is repl...阅读全文

博文 2014-10-04 19:27:16 阳光灿烂的日子

linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 本文首发于:http://www.zzzzy.com/201411023370.html 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c htt...阅读全文

博文 2014-11-02 22:00:01 Skiychan

Ubuntu下使用GDB断点Go程序

大家好,今天为大家带来Ubuntu下,使用GDB断点调试Go程序。由于之前没有接触过GDB调试,而Go语言本身内置也没有什么调试工具,不像 Eralng,有Debugger可以使用,我从网上搜索了下,也没有相关的中文教程,所以这边自己研究了下,给新手带来一篇关于GDB简单调试Go程序 的文章。(关于GDB的文章还是不少的) 首先,编写测试代码,如下: package main import ( "fmt" ) func main() { fmt.Printf("%sn", "hello, world") printNumber() } func printNumber() { var count int; count = 10 sum := 0 for i := 0; i < count; ...阅读全文

博文 2014-10-09 16:50:44 Rhino(犀牛)

android eclipse断点调试

在android开发中,我们常常需要对程序进行调试,而常用的就是断点调试。Eclipse作为android主要的开发环境,用eclipse开发android程序的时,断点调试又如何开展呢? 一起来看看具体的操作方法和步骤吧。 1、设置断点 在编码窗体的左边框上用鼠标双击,或者右键点击菜单,选择 Toggle Breakpoint菜单项。 ![1.png](http://studygolang.qiniudn.com/151116/5fbff836eff8587d22c94e9d44a895f7.png) 2、在debug模式下运行程序进入调试状态:通过点击工具栏上的小虫按钮或者是在项目右键点击然后选择Debug As,Android Application菜单,启...阅读全文

go如何debug

我想用Intellij,装了go插件,断点调试的时候能在断点处停下来,一旦点step over按钮调试界面就没用了,调试的时候控制台输出这样的go build -o -gcflags "-N -l" 等等这些东西。网上搜了一下,有什么gdb,delve,怎么在intellij里用啊?另外问一下,beego框架用bee run跑,那它怎么调试呢...阅读全文

golang之GDB调试

文:GDB调试Go程序 说明:作为一门静态语言,似乎支持调试是必须的,而且,Go初学者喜欢问的问题也是:大家都用什么IDE?怎么调试? 其实,Go是为多核和并发而生,真正的项目,你用单步调试,原本没问题的,可能会调出有问题。更好的调试方式是跟PHP这种语言一样,用打印的方式(日志或print)。 当然,简单的小程序,如果单步调试,可以看到一些内部的运行机理,对于学习还是挺有好处的。下面介绍一下用GDB调试Go程序:(目前IDE支持调试Go程序,用的也是GDB。要求GDB 7.1以上) 以下内容来自雨痕的《Go语言学习笔记》(下载Go资源): 默认情况下,编译过的二进制文件已经包含了 DWARFv3 调试信息,只要 GDB7.1 以上版本都可以进行调试。 在OSX下,如无法执行调试指令,可尝试...阅读全文

博文 2016-04-28 02:00:04 haww

go调试的问题。

各位用的是什么工具调试go的?调试过程有没碰到一些蛋疼的问题 比如: 1.断点需要在debug之前就打才能生效 2.运行过程中断点去掉后还会断到。 3.单步调试会跳来跳去、(这个在调试beego的controler的时候比较容易碰到) 我用JetBrains的idea和Goglang、同事用的是vscode,都有碰到调试问题。 编译器用的是delve 试过几个版本的delve都没有相对完美的,有的断点可以在运行过程中打,但是简单逻辑的单步调试要很久4 5秒那种。 想问下各位用的什么调试工具和编译器,调试过程中有没有这些蛋疼的问题...阅读全文

这个你知吗:linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c http://www.golangtc.com/static/go/go1.4beta1.lin...阅读全文

博文 2014-11-03 10:00:03 ngyxf26v

go语言的GDB调试入门初级

之前看go,教程顺了一遍下来,感觉不是很难,最近在做一件事情的时候发现自己当时实在是太天真了。废话不多说,直奔主题,由于学习中免不了要调试代码,所以就找了一下网上出来的IDE,发现两个,一个是go的一个是liteIde,感觉都不是很好用。前者进去之后完全不知所云,后者在我的测试代码中不知道怎么进行调试。也许是我无形比较挫,不管怎样,不想再折腾了,我也不能要求所有的IDE和XCode一样傻瓜不是。索性直接使用GDB,之前没用过,完全不知道怎么弄。下面是我的步骤,已经知道怎么用gdb对go进行调试的略过。 1.安装go,不多说,网上有。(在ubuntu中可以简单的使用sudo apt-install golang-go来安装) 2.安装gdb,注意至少要到7.1以上的GDB才支持go。 3.便宜...阅读全文

博文 2016-04-26 18:01:01 cytzrs

goClipse debug遇到问题 Failed to execute MI command:....

我的环境是 ubuntu16.04+eclipse+goClipse 下面是我的源码: package main import ( "fmt" ) func main() { arr := []int{1, 4, 3, 2, 5, 7} fmt.Println(arr) } 目的是看下怎么debug go源码, 在println语句前面加了断点,看次时arr的值,
***问题来了*** ![Screenshot from 2017-06-28 10-04-22.png](http://studygolang.qiniudn.com/170628/952c63734b79f66...阅读全文

使用IDEA的GOLANG插件遇到的问题,求解答

![屏幕快照 2017-03-17 下午5.45.15 (2).png](http://studygolang.qiniudn.com/170317/b73250049863a33b3c3e4cb120931a64.png) 如图:DEBUG的时候,Variables内同一个变量msg出现很多次,而且是不同类型。再看Watches里,msg打印出来的类型也和173行断点处不一致。 我试图强行转为正确的类型打印,结果提示类型不匹配。 请教一下,这样的现象如何解决...阅读全文

Ubuntu下使用GDB断点Go程序

大家好,今天为大家带来Ubuntu下,使用GDB断点调试Go程序。由于之前没有接触过GDB调试,而Go语言本身内置也没有什么调试工具,不像Eralng,有Debugger可以使用,我从网上搜索了下,也没有相关的中文教程,所以这边自己研究了下,给新手带来一篇关于GDB简单调试Go程序的文章。(关于GDB的文章还是不少的) 首先,编写测试代码,如下: package main import ( "fmt" ) func main() { fmt.Printf("%s\n", "hello, world") printNumber() } func printNumber() { var count int; count = 10 sum := 0 for i := 0; i < count; i...阅读全文

博文 2015-04-14 10:05:47 yourihua

VS Code 调试 Golang 出现 Failed to continue: Check the debug console for details

如图所示,VS Code断点调试Golang时候,弹出提示 断点调试.png 点击Open launch.json,在env里面添加go.gopath路径 { "version": "0.2.0", "configurations": [ { "name": "Launch", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "env": { "go.gopath": "自己的路径" // 打开终端,输入命令 go env 可以查看GOPATH路径 }, "args": [] } ] } 查看自己Golang项目的工作目录,就是整个项目所在目录的,如我的项目结构如下图所示: 项目结...阅读全文

博文 2018-12-13 17:34:50 单抽律化娜

vscode 调试golang web application

1.配置tasks.json{"version": "0.1.0","command": "go","isShellCommand": true,"showOutput": "always","args": ["run","${file}"],"isBuildCommand": true,"taskSelector": "/t:"}2.配置launch.json{"version": "0.2.0","configurations": [{"name": "debug","type": "go","request": "launch","mode": "debug","remotePath": "","port": 8080,"host": "127.0.0.1","program": "$...阅读全文

博文 2017-09-29 22:04:55 刀鳅

golang调试工具Delve

Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个正在运行中的golang程序,进行调试。 线上golang服务出现问题时,Devle是必不少的在线调试工具,如果使用docker,也可以把Devle打进docker镜像里,调试代码。 安装Devle 安装Devle非常简单,直接运行go get 即可: go get -u github.com/derekparker/delve/cmd/dlv 如果你的go版本为1.5请先设置环境变量GO15VENDOREXPERIMENT=1再运行go get。我的go版本为1.10,不用设置。 使用Devle调试golang服务 先写一个简单的web服务,然后使用Devle来进行调试。 在$GOPATH...阅读全文

博文 2018-03-09 10:48:18 li-peng

mac 上手GoLand-EAP

GoLand-EAP确实时golang开放的利器,不过mac上安装时有个大坑,就是DEBUG无法使用。 OS版本10.10.5 ,设置debug断点时,会panic。 最后解决方法。 1. 将sdk的版本,从go 1.7升级到1.9 可以在Preferences->GO->GoROOT中修改 2. Debugger的 Use native backend勾选 可以在Preferences->GO->Build,Execution,Deployment->Debugger中勾...阅读全文

博文 2017-11-29 02:10:03 nbg_xuan

实现一个 Golang 调试器(第三部分)

到目前为止我们已经知道如何单步执行用 ptrace 暂停的进程(tracee)以及如何从二进制文件中获取一些调试信息(在[这里](https://studygolang.com/articles/12794)阅读相关内容)。接下来就是设置断点,等待程序运行到断点处,查看进程相关信息的时候了。 让我们从上一篇文章中用到的汇编代码开始 ```asm section .data msg db "hello, world!", 0xA len equ $ - msg section .text global _start _start: mov rax, 1 ; write syscall (https://linux.die.net/man/2/write) mov rdi, 1 ; stdout...阅读全文

博文 2018-04-15 16:57:15 jettyhan

使用 delve 调试 golang 程序

安装 delve 官方的文档已经很全了,参考这里(github)安装。Mac OSX 比较麻烦,需要搞定证书。 断点和变量打印 delve 装好之后就可以直接在命令行使用 dlv 命令了。 查看可用的命令 dlv -h 看帮助信息可知:支持用 dlv attach 的方式调试正在运行的进程,支持 dlv connect 链接到网络端口调试。这里先用最简单的 dlv debug 调试。 dlv debug main.go 然后会进入调试模式,此时 help 可以看到支持的命令。 (dlv) b main.go:16 #在 main.go 的第 16 行设置断点。 (dlv) bp #查看当前所有断点 (dlv) c #运行到下一个断点或者程序结尾 (dlv) p a #打印变量 a 的值 (d...阅读全文

delve本地远程调试

### delve 开源项目地址https://github.com/go-delve/delve. 提供golang调试可以debug和attach. 安装使用go get, 同时将gopath添加进入环境变量以便于能够运行dlv工具. go get -u github.com/go-delve/delve/cmd/dlv ### 调试例子 test.go ``` package test var Test_val int = 2000 ``` main.go ``` package main import ( "dlv/test" "fmt" "log" "net/http" "os" ) const port = "8000" func main() { log.Println("ma...阅读全文

博文 2019-12-30 19:12:48 bytemode

【实践】gdb调试golang程序入门及gdb命令列表

1. 摘要 本文讲解gdb调试GOLANG程序的入门配置,以及gdb命令详解备忘。 2. gdb调试go程序入门 gdb是linux系统自带的调试器,功能十分强大,它不仅支持C/C++调试,也支持GO程序调试。 2.1 配置gdb (1) 打开gdb初始化配置文件 vim ~/.gdbinit (2) 增加一行,:wq!保存后退出 add-auto-load-safe-path /usr/local/go/src/runtime/runtime-gdb.py 2.2 编译golang 假设源码文件为main.go,查看循环进行了几次。 package main import ( "fmt" ) func main() { for i := 0; i < 5; i++ { fmt.Printl...阅读全文

博文 2019-05-14 18:34:49 笔名辉哥

golang 调试工具 dlv

package main import "fmt" // dlv 断点调试法 /* 下载安装: go get -u github.com/derekparker/delve/cmd/dlv 使用: (base) ➜ dlv dlv debug ./learn2.go Type 'help' for list of commands. (dlv) help The following commands are available: args ------------------------ Print function arguments. break (alias: b) ------------ Sets a breakpoint. breakpoints (alias: bp) ----...阅读全文

博文 2019-07-01 20:32:39 五知小白羊

GDB调试(转)

基础用法 1. 简介 GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事。 4.动态的改变你程序的执行环境。 2 生成调试信息 一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-g,你将...阅读全文

博文 2018-10-11 17:34:44 策马追猪

Go语言实现实战“云存储”系统

课程介绍:云程序员,微服务,是最近几年一直被频频提到的热门词汇。本课程将通过Golang来实现一个支持断点续传和秒传的分布式云存储服务系统。课程中老师将手把手带你从快速构建“云存储”原型系统,到分块上传,到搭建访问阿里云,最后进行系统的微服务化,让你快速掌握架构传输性能和稳定性的优化过程,秒变云时代中第一代“云程序员”。 课程截图: 如果觉得可以,可以添加威信:sulindong1993,其中Price is 5...阅读全文

博文 2019-06-24 20:02:42 IT资源信息

Spectrum 链开发--IDE 断点调试介绍

Spectrum 链开发--IDE 断点调试介绍 作者:GirpZhang 实验环境 Windows10 go1.9.2.windows-amd64 Visual Studio Code Git 2.18.0 需要完成 Visual Studio Code + GoLang 开发环境配置 安装 go1.9.2.windows-amd64 安装 Git 安装 GoLang,配置 GOPATH 本例中使用的 "GOPATH":"E:/GoPath";"GOROOT":"E:/Go" 安装 Visual Studio Code,安装 Go 插件,介绍中是 Rich Go language support for Visual Studio Code 调试配置: VSCode->查看->调试->添加...阅读全文

博文 2018-09-05 22:34:44 ZhangHQ

使用delve调试Golang程序

使用delve调试Golang程序 2019年7月9日 delve是一款专门针对Golang程序调试而开发的命令行调试器,该工具功能强大,简单易用。 本文从安装开始,使用一个实际的Golang程序调试例子,学习一下delve的主要调试方式及常用调试命令。 本文所使用的是Windows环境。 1 安装 使用go get命令安装构建delve。 $ go get -u github.com/go-delve/delve/cmd/dlv 其会在$GOPATH/bin下生成二进制可执行文件dlv.exe,将$GOPATH/bin添加到PATH环境变量即可在任意目录使用dlv。 2 主要调试方式 键入dlv help可以看到dlv的使用帮助文档。 $ dlv help Delve is a sourc...阅读全文

博文 2019-07-15 10:25:39 Larry

golang: 使用 delve 调试 golang 程序

golang: 使用 delve 调试 golang 程序 猜你喜欢golang: 在 Golang 中使用 Go 关键字和 Channel 实现并行在 Golang 中使用 Go 关键字和 Channel 实现并行使用Golang语言实现一个简单的Bitcask引擎的文件存储系统安装 delve 官方的文档已经很全了,参考这里(github)安装。Mac OSX 比较麻烦,需要搞定证书。 断点和变量打印 delve 装好之后就可以直接在命令行使用 dlv 命令了。 查看可用的命令 dlv -h 看帮助信息可知:支持用 dlv attach 的方式调试正在运行的进程,支持 dlv connect 链接到网络端口调试。这里先用最简单的 dlv debug 调试。 dlv debug main....阅读全文

博文 2019-03-27 12:31:33 daisongwan

Go语言-gdb调试

编译Go语言程序的时候,传递-gcflags "-N -l"参数,这样可以忽略Go语言内部做的一些优化,聚合变量和函数等优化 go build -gcflags "-N -l" 常用命令 list显示源码,默认显示10行,例如list 15,显示十行代码,其中第15行在显示的十行里边的中间 break设置断点,后面可以跟代码行号或者函数名 delete删除断点,后面跟上断点设置的序号,这个序号可以通过info breakpoints获取相应的设置的断点序号 backtrace 简写命令bt,用来打印执行的代码过程 info用来显示信息info locals用来显示当前执行的程序中的变量值info breakpoints显示当前设置的断点列表info goroutines显示当前执行的goro...阅读全文

博文 2018-07-02 21:35:13 二郎神六号

文件断点续传的基本实现

断点续传原理 每次拷贝时,使用seek记录偏移量,并将其记录在本地文件中,下次拷贝时读取时从记录的偏移量的位置继续进行 上次上传代码有错误,已修复 代码实现 核心方法 func ContinueCopy(srcFile, destDir string) (int, error) { // 1. 定义源文件 fileSrc, err := os.Open(srcFile) if err != nil { return 0, err } log.Printf("源文件名称:%s\n", fileSrc.Name()) // 2. 定义目标文件位置,不存在时自动创建 destFile := destDir + srcFile[strings.LastIndex(srcFile, "/")+1:] ...阅读全文

博文 2020-01-19 12:34:20 永动的图灵机

Mac环境配置gdb,调试golang程序

GDB:The GNU Project DebuggerGDB是GNU中的项目调试工具,主要运用在UNIX及UNIX-like环境。功能:可以调试、定位问题到代码行备注:由于macOS系统本身和UNIX系统有区别,且本质上并不支持gdb,故安装过程会遇到各种问题1、如何安装:1)我直接brew install gdb会失败,错误信息忘记保存了2)选用下载安装包方式下载链接:ftp://sourceware.org/pub/gdb/releases/选择其中一个版本下载3)下载后,解压,并进入下载目录配置:./configure编译:make -j4安装:make install4)安装成功,执行gdb -v,可以看到gdb版本 gdb -vGNU gdb (GDB) 8.3Copyright...阅读全文

博文 2019-08-29 17:34:50 随水而生_cb06

golang调试工具Delve

Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个正在运行中的golang程序,进行调试。 线上golang服务出现问题时,Devle是必不少的在线调试工具,如果使用docker,也可以把Devle打进docker镜像里,调试代码。 安装Devle 安装Devle非常简单,直接运行go get 即可: go get -u github.com/derekparker/delve/cmd/dlv 如果你的go版本为1.5请先设置环境变量GO15VENDOREXPERIMENT=1再运行go get。我的go版本为1.10,不用设置。 使用Devle调试golang服务 先写一个简单的web服务,然后使用Devle来进行调试。 在$GOPATH...阅读全文

博文 2019-11-20 23:33:50 阿泽Aze

mac安装gdb,lldb遇到的若干问题

今天折腾了下 Golang的调试工具gdb和lldb, 遇到了一些问题, 在这里记录下方便以后查找,也给遇到的小伙伴门一些参考。(只针对macOS系统) 生成证书报错 mac 创建证书 未知错误 = -2147414007 可以先生成一个登陆证书,然后将证书移动到系统那一类就行了 gdb 安装 gdb调试报错 Unable to find Mach task port for process-id 23330: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8)) 如果是 Mojave (10.14) 之前的系统 codesign -fs gdb-cert $(which gdb) #gdb-...阅读全文

博文 2020-03-01 21:32:38 say_leo

Golang:实现断点续传

Seeker 接口 Seeker 是包装基本 Seek 方法的接口。 type Seeker interface { Seek(offset int64, whence int) (int64, error) } seek(offset,whence),设置指针光标的位置,随机读写文件: 第一个参数:偏移量 ​第二个参数:如何设置 0:seekStart表示相对于文件开始, ​1:seekCurrent表示相对于当前偏移量, ​2:seek end表示相对于结束。 const ( SeekStart = 0 // seek relative to the origin of the file SeekCurrent = 1 // seek relative to the current of...阅读全文

博文 2020-10-06 23:32:42 金刀大菜牙

Go的调试工具:gdb vs dlv

GoLand编辑器虽然很强大,但是在展示内存及堆栈信息这一块还是比较的弱,有可能是我的姿势不对,所以,开始切入了gdb调试,但是gdb踩到了坑,并没有解决,也就引发了gdb与dlv的对比了 gdb 安装 yum install ncures-devel wget http://ftp.gnu.org/gnu/gdb/gdb-8.2.tar.gz tar zxf gdb-8.2.tar.gz cd gdb-8.2 make && make install 进入调试 go build -gcflags '-N -l' main.go gdb main 使用 启动调试程序(gdb) [lday@alex GoDbg]$ gdb ./GoDbg 在main函数上设置断点(b) (gdb) b mai...阅读全文

博文 2019-08-15 20:32:39 tyloafer

Go相关公众号文章每日推荐 【2020-09-25】

一、Go语言中文网 1. [字节跳动 2-2 级别的 Go 工程师究竟有多强?](https://mp.weixin.qq.com/s/zj8kh7O4Nkh1s050DGwKOQ) 2. [Go 实战 :如何实现 HTTP 断点续传多线程下载?](https://mp.weixin.qq.com/s/dt5emM2IsJ3DKmL502Zm8A) 3. [Linux/Unix 爱好者一定会喜欢这个开源工具](https://mp.weixin.qq.com/s/7ccMZ_73GN92HMKTvjZx0Q) 4. [Excelize 2.3.1 发布,Go 语言 Excel 文档基础库,支持加密表格文档](https://mp.weixin.qq.com/s/b6...阅读全文