一,准备工作
linux 安装dlv
git clone https://github.com/go-delve/delve.git $GOPATH/src/github.com/go-delve/delve
cd $GOPATH/src/github.com/go-delve/delve
make install
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc
## 测试是否安装成功
dlv version
idea 安装 go插件,很简单:file->Settings->Plugins然后输入 go安装就行
二.配置远程环境
1.打开idea, 并按键 shift+alt +F9 打开,会弹出下图的 debug窗口,点击 0 -Edit Configurations
2. 然后点击 右上角+ 按钮,选择 go remote
3.写入调试参数
Name: 就是名字,这里可以写 test
Host:这个是要远程调试的服务器ip
Post: 端口号,随便填不冲突就行
连接方式选 ask
然后点击apply,再点击Debug
三、开始调试
1.编写代码
test.go
package main
import "fmt"
func main() {
fmt.Printf("开始调试\n")
var a int32
fmt.Scanf("%d", &a)
fmt.Printf("结束调试\n")
}
calldlv.sh (这个是调用dlv 的脚本,里面的8001就是上面填的端口)
#!/bin/bash
pid=`ps -ef |grep test |grep -v grep |grep -v bash|awk '{print $2}'`
dlv attach $pid --headless --api-version=2 --log --listen=:8001
2.执行代码
编译并执行 go
go build test.go
./test
执行 calldlv
./calldlv
3. idea调试
1.按 alt+shift +F9,选择之前填写好的bug配置
2 打开之后如果是这样的就显示连接 dlv成功了(如果dlv是后启动的,点击红框那行第一个按钮可重新连接)
- 然后打开test.go ,对指定行数点击,断点
4.触发断点
回到 test 程序指定的地方,随便输入一个数,回车,这个时候idea会立刻弹出(或者闪动)
然后我们就可以看到断点的具体参数了
5.跳过当前断点
点击
然后程序会往下执行
ok,大功告成!!!