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:继续执行
在使用Laravel中如果要进行复杂的查询,那么通过模型中的函数来查询是不行的,所以本文主要记录如何通过aggregate来进行复杂的查询。
如果在使用Gin框架编写web应用程序中,如果里面包含了模板文件和静态文件,我们如何进行打包呢?本文主要记录该操作。
最近关注流媒体服务器来做网络直播,本想使用阿里云的流媒体服务器,由于费用的问题还是想能否自己搭建一个流媒体服务器供自己测试使用。果不其然,Nginx居然如此强大,可以用来做流媒体服务器。本文将具体介绍流媒体服务器的搭建过程和使用过程。
Python调用WPS把文档转换PDF,并把PDF转图片,首先需要安装WPS,然后利用pypiwin32把文档转化成PDF,再利用fitz、PyMuPD把PDF转化成图片
Centos中用Chrome将网页导出为PDF,chrome --headless --print-to-pdf https://developer.chrome.com/
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
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问题