goland和dlv进行远程代码调试
1、dlv下载安装
在linux操作系统下
cd $GOPATH/src
mkdir go-delve
git clone github.com/go-delve/delve.git
cd $GOPATH
go install github.com/go-delve/delve/cmd/dlv
把$GOPATH/bin添加到PATH
或者在$GOPATH中执行./dlv
或者建立软链接:
ln -s $GOPATH/bin/dlv /usr/local/bin/dlv
2、服务器启动golang程序
代码:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/hello", Ack)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func Ack(w http.ResponseWriter, r *http.Request) {
path := r.URL.Path
fmt.Println("path:", path)
fmt.Fprintf(w, "%s", "world")
}
编译执行:
go build main.go
运行程序:
nohup ./main >> out.log &
显示:
[1] 43673
[zpp@192 string]$ nohup: 忽略输入重定向错误到标准输出端
43673就是进程ID,dlv attach进程。
dlv attach 43673--headless --listen=:2345 --api-version=2 --accept-multiclient
或者不用提前运行程序,dlv直接执行:
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient --check-go-version=false exec ./main
dlv启动main程序,并且暴露2345端口,以便于goland通过端口调试程序。
API server listening at: [::]:2345
3、在goland上运行调试
打开goland,Run -》Edit Configurations…

输入host和port,host就是dlv执行程序的服务器ip,port是执行时绑定的端口。

现在就可以在goland上调试远程服务器上的go代码了。其实goland就是给dlv做了一个界面而已,dlv本身就具备调试的功能,只是没有goland直观。
本文介绍了如何在Linux环境下安装和配置dlv,以及如何利用goland进行远程代码调试。首先,通过git clone和go install安装dlv,并设置环境变量。接着,在服务器上编译并启动Go程序,使用nohup后台运行。然后,通过dlv attach或exec命令启动调试服务器。最后,在goland中配置远程调试设置,连接到服务器的指定端口,实现远程调试功能。
4682

被折叠的 条评论
为什么被折叠?



