#Others# GoLand + DevCloud 的远程开发与调试
source link: https://lottewong.github.io/2021/08/12/GoLand%20+%20DevCloud%20%E7%9A%84%E8%BF%9C%E7%A8%8B%E5%BC%80%E5%8F%91%E4%B8%8E%E8%B0%83%E8%AF%95/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
#Others# GoLand + DevCloud 的远程开发与调试
GoLand
asIDE
DevCloud
asgo run/go build/dlv debug
environment
前言
缘起一个
EOF
错误,由于网络策略原因,本地开发机无法连接某个内网服务,遂转向在办公网内的远程服务器。本人作为 Linux 小菜,由此产生了一个新诉求:在 Windows 上远程开发和调试服务器的代码,充分地发挥 IDE 的强大作用。
环境准备
- GoLand 2020.2.3
- Go 1.16.6
- Delve 1.7.0
配置 GoLand 连接 DevCloud
创建 Deployment 配置
Tools
->Deployment
->Configuration
->+
Connection - 网络连接
Type
:选择SFTP
协议SSH configuration
:填写Host
/Port
/User name
/Password
信息,通过Test Connection
验证Root path
:点击Autodetect
按钮Web server URL
:暂时不用考虑
Mappings - 存储映射
Local path
:本地开发机项目目录
Deployment path
:远程服务器项目目录
Web path
:暂时不用考虑
创建 Run/Debug 配置
Run
->Edit Configurations
->+
->Go Remote
Host
:远程服务器地址
Port
:Delve Port
登录、查看和同步
登录远程服务器
Tool
->Start SSH Session
查看远程目录树
Tools
->Deployment
->Browse Remote Host
同步本地文件夹
手动:
Tools
->Deployment
->Sync with Deployed to DevCloud
自动:
Tools
->Deployment
->Automatic Upload (on explicit save)
部署与调试
远程执行部署脚本
编译调试一起
dlv debug cmd/server/main.go --headless --listen=:2345 --api-version=2
先编译再调试
go build -o cmd/server/demo.exe cmd/server/main.go
dlv --listen=:2345 --headless=true --api-version=2 exec cmd/server/demo.exe
进程后台操作
nohup dlv debug cmd/server/main.go --headless --listen=:2345 --api-version=2 >> ./demo.log 2>&1 & # 后台启动
pkill -9 dlv # 后台暂停
完整脚本文件
start.sh
#!/bin/bash
# set go env
export GO111MODULE=auto
export GOPROXY=https://goproxy.io,direct
go mod tidy
go mod vendor
# kill processes already started
pkill -9 dlv
# run demo backgroud server
nohup dlv debug cmd/server/main.go --headless --listen=:2345 --api-version=2 >> ./demo.log 2>&1 &
echo 'nohup dlv debug cmd/server/main.go --headless --listen=:2345 --api-version=2 >> ./demo.log 2>&1 &'stop.sh
#!/bin/bash
# kill processes already started
pkill -9 dlv
本地打开调试模式
PS:这里需要注意,
go run
的时候返回数据到Postman
,dlv debug
的时候返回数据到GoLand
具体流程
- 配置好
Deployment
和Run/Debug
- 修改本地代码文件,手动或自动同步内容到远程
- 登录远程服务器,一键执行部署脚本
- 本地打好断点,开启调试模式
附录
GoLand Debug
- 开启调试模式:
Shift + F9
- 打下断点:点击 Code 左侧
- 查看变量:查看 Debug 面板
Step Over
:F8
Step Into
:F7
Step Out
:Shift + F8
- 下一个断点处:
F9
Delve Debug
- 开启调试模式:
dlv debug main.go
- 打下断点:
break pkg.fn
或break file:line
- 查看变量:
print var
或args
或locals
Step Over
:next
Step Into
:step
Step Out
:stepout
- 下一个断点处:
continue
参考文献
Comments
Related Issues not found
Please contact @LotteWong to initialize the comment
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK