delve基础用法及在vscode中的使用

Python012

delve基础用法及在vscode中的使用,第1张

delve 是go语言的调试器,delve的目标是为go提供一个简洁、功能齐全的debug工具,delve易于调用和使用。

为了能够编译delve,需要安装Go 1.10或更高版本

安装好go后,直接go get即可安装,更多安装教程见: https://github.com/go-delve/delve/tree/master/Documentation/installation

go get github.com/go-delve/delve/cmd/dlv

安装好后,在终端执行dlv或者dlv help 会看到dlv的帮助信息,则说明安装成功

dlv常用命令

delve的目标是成为一个简洁而强大的工具。但如果你不习惯在编译语言中使用源码调试,则可能令人困惑。本文档将提供开始调试go程序所需的全部信息。

调试例子程序如下

├── go.mod

├── go.sum

├── main.go

├── test

└── utils

├── util.go

└── util_test.go

调试程序主要有三个文件,main.go、util.go、util_test.go,内容如下,比较简单,go包管理工具使用的是go module,模块名为test

在vscode debug 的设置中配置launch.json文件

mode 设置为debug时,program的内容${fileDirname}即可,mode 设置为exec时,program的值为二进制文件的路径,通过设置mode的值,即可调试源码和二进制程序(也需要有源码)。mode模式为auto时,测试了下,vscode 并不能通过program的内容来判断是debug还是exec

远程调试时,需要在远程也有源码、二进制包和dlv工具

在远端执行dlv命令

dlv debug --headless --listen=:8989 --api-version=2 --accept-multiclient #用degbug方式启动远程应用程序

dlv exec --headless --listen=:8989 ./test --api-version=2 --accept-multiclient # exec执行当前目录下的test二进制文件

--listen:指定调试端口

--api-version:指定api版本,默认是1

--accept-multiclient:接受多个client调试

在vscode中线下好源码,和远端的源码结构一致。launch.json配置如下:

在vscode中打好断点后,就可以进行远程调试了

参考: https://code.visualstudio.com/docs/remote/ssh#_getting-started

有几个步骤要做。

因为我安装了git,但是命令行调不出ssh,便选择将ssh路径加入vscode设置中。

打开settings.json,F1键入 preferences open settings, 加入该行

"remote.SSH.path": "D:\Program Files\Git\usr\bin"

"remote.SSH.path": "D:\Program Files\Git\usr\bin \ssh.exe "

至此成功连接上远程服务器,接下来慢慢研究怎么配置golang环境。

vscode的远程功能是可以做到把本地不需要搭建环境的。

PS: extension上,UI这种存储在本地,其他工程相关的在远程服务器上。

开始配置golang环境:

window.zoomLevel 可以修改整体的缩放

问题是,订阅文件有很多个服务器,怎么选呢?

clash有个网页控制端, http://clash.razord.top/ ,会映射到localhost:9090

那么只要把服务器的9090端口打开,是不是可以远程修改服务器上的代理设置呢

原来clash监听的9090端口,是提供了restful API,前往 http://clash.razord.top/#/settings

这里默认调用localhost的clash API,可以在设置里把IP修改为目标服务器ip

然后就可以愉快的远程修改远程服务器代理配置。

(PS: 因为是腾讯云,记得在规则里添加9090。

(PS: sudo ufw -status ->inactive,并不需要修改服务器上的配置,隐约记得centos默认是有ufw的

然后需要把ubuntu的proxy设置改成走clash,因为工作环境是terminal,所以export http_proxy=localhost:7890即可,可以把export加入到zsh.rc里。

问题是socks5怎么解决,以前用过一款叫proxychains的。

初步结束

vscode快速切换go版本:

1、在vscode下添加launch.json。

2、终端编码切换gobuild即可。VSCode(全称:VisualStudioCode)是一款由微软开发且跨平台的免费源代码编辑器,该软件支持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能。