goland+dlv远程调试

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直观。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值