golang dlv 远程调试

本文介绍了一种使用dlv进行远程调试的方法。通过在服务器上查找进程并使用特定命令启动dlv,可以在本地机器上进行远程调试。注意本地操作可能会影响服务器上的调试进程。

因为不知道delvel 是如何设置源码的,本地编译的上传到服务器上,服务器要调试看不到源码,很是忧伤,所以干脆使用远程调试吧:

在服务器上 ps x|grep game 查找到gameserver的进程pid

然后服务器命令行输入:
dlv attach $PID --headless --api-version=2 --log --listen=:8181

本机只要输入:

dlv connect www.example.com:8181 连接到服务器上的dlv进程,就可以在本机远程调试了。

需要注意的是

本机quit 以后,远程dlv进程也会结束。
本机没有dlv connect,远程dlv直接关闭会导致 远程调试进程PID直接退出(很是忧伤)
本机dlv输入quit以后,会让你选择是否关闭调试进程,这个有时候也方便,不过大多数都是选择N 不关闭调试进程PID

### 设置VSCode中Linux环境下的Golang远程调试 为了设置在Linux环境中通过VSCode进行Go语言的远程调试,需遵循特定配置流程[^1]。 #### 安装必要的工具和扩展 确保已安装最新版本的`delve`调试器,在目标机器上执行命令`go install github.com/go-delve/delve/cmd/dlv@latest`来获取它。对于开发机(即运行VSCode的地方),应安装官方提供的Go插件以便支持编辑器内的调试功能。 #### 配置SSH连接 建立从本地到远端服务器的安全Shell(SSH)会话是必需的操作之一。这可以通过终端中的ssh指令完成,格式通常如下所示: ```bash ssh username@remote_host_ip_address ``` #### 启动Delve监听模式 一旦成功登录至远程主机,则可以在该处启动Delve以侦听来自客户端的入站请求。使用下面给出的形式化参数调用dlv命令: ```bash dlv dap --listen=:2345 --log ``` 此处指定的服务端口(`:2345`)可以根据实际情况调整;同时开启日志记录有助于排查可能遇到的问题。 #### 创建launch.json文件 回到本地计算机上的Visual Studio Code界面内,打开项目根目录并创建`.vscode/launch.json`文件用于定义调试选项。一个典型的JSON对象看起来像这样: ```json { "version": "0.2.0", "configurations": [ { "name": "Connect to server", "type": "go", "request": "attach", "mode": "remote", "host": "localhost", // 或者实际IP地址 "port": 2345, "trace": true } ] } ``` 此配置允许开发者附着到之前提到过的远程进程中去,并且可以开始正常的断点设定、单步执行等操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值