有时候我么需要远程调试golang程序,比如我们在macos写的代码,但是有时在linux上运行的,所以我们需要远程调试运行在linux系统的代码。另外一种情况是我们可以把goalng打包到docker 镜像中,代码跑在容器中同样可以调试。以goland为例。
remote debug
远程调试golang代码需要在运行代码的远程机器上按照delve,然后以delve运行要调试的程序。
- 编译
export CGO_ENABLED=0 GOOS=linux GOARCH=amd64
go build -gcflags='all -N -l' main.go
- install delve
go get go get -u github.com/derekparker/delve/cmd/dlv
- delve 运行程序
dlv --listen=:2345 --headless=true --api-version=2 exec ./main
-
goland 设置remote debug
host为远程主机ip 端口是刚才dlv设置的端口
屏幕快照 2018-07-03 下午3.57.11.png - debug
然后就像调试本地代码一样调试远程主机上的程序