GoLand+Delve(dlv) 远程调试
简介GoLand+Delve(dlv) 远程调试
GoLand+Delve(dlv) 远程调试
参考:https://yq.aliyun.com/articles/57578
服务器上安装dlv
Centos按时dlv
git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
cd $GOPATH
go install github.com/go-delve/delve/cmd/dlv
创建软链接
ln -s $GOPATH/bin/dlv /usr/local/bin/dlv
查看版本
[root@localhost bin]# dlv version
Delve Debugger
Version: 1.4.0
Build: $Id: 67422e6f7148fa1efa0eac1423ab5594b223d93b $
示例代码
新建文件test.go
package main
import (
"fmt"
"time"
)
const myDate = "2019-05-30 15:13"
var (
Aa = 81
Bb = 82
)
func main() {
fmt.Println("myDate:", myDate)
func1()
}
func func1() {
a := 61
b := 62
i := 0
for true {
fmt.Println("fmt:", i, a, b, Aa, Bb)
i++
a += 2
Aa += 3
time.Sleep(time.Second)
}
}
编译成linux可执行文件
SET CGO_ENABLED=0
SET GOARCH=amd64
SET GOOS=linux
go build test.go
编译完成后会生成一个test文件,将文件上传到服务器上并添加可执行权限并允许:
[root@localhost xthk_online_live_go_api]# chmod +x test
[root@localhost xthk_online_live_go_api]# ./test
myDate: 2019-05-30 15:13
fmt: 0 61 62 81 82
fmt: 1 63 62 84 82
查询运行的进程,并运行dlv监听:
[root@localhost xthk_online_live_go_api]# ps -ef|grep test
root 15380 12630 0 17:05 pts/2 00:00:00 ./test
root 15389 7712 0 17:05 pts/1 00:00:00 grep --color=auto test
[root@localhost xthk_online_live_go_api]# dlv attach 15380 --headless --listen=:2345 --api-version=2 #15380是test的进程ID
API server listening at: [::]:2345
上面介绍的是将本地编译后的文件进行调试,如果我们直接调试服务器上的golang程序,还可以使用debug模式运行:
[root@localhost xthk_online_live_go_api]# dlv debug --headless --listen=:2345 --api-version=2 test.go
API server listening at: [::]:2345
或者直接运行可执行文件:
[root@localhost xthk_online_live_go_api]# dlv exec --headless --listen=:2345 --api-version=2 ./test
API server listening at: [::]:2345
配置Goland
1、Run
2、Edit Configurations
3、左上角加号
4、Go Remote
5、设置调试名称、配置Host和Port,这个是服务器的地址和dlv监听的端口
6、保存
调试
1、Run
2、Debug
3、选择上面配置的远程调试名称,调试开始
快捷键
1、F9:切换断点
2、F8:继续执行
有时候我们并不想让自己的应用能多次进行启动,所以本文主要讲解下如何限制Electron的应用多次被启动。
线性表是最基本、最简单、也是最常用的一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。
grep命令是常用个一个命令。能够从文本文件或管道数据流中筛选匹配的行及数据,如果使用正则表达式进行一起使用,功能会更加强大。
对加密相关概念整理
Nginx作为使用量非常大的Web服务器,但是如果遇到一个访问量比较大的网站,其访问日志会快速的进行增长,如果一直将所有的访问日志存放在一个文件中肯定是不对的,所以我们就需要对访问量大的访问日志进行分割,然后按照一定的时间删除不需要的日志文件。
快速生成表格
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。