在配置调试工具前,需确保CentOS系统已安装Golang。以下是两种安装方式:
go1.20.3.linux-amd64.tar.gz),执行以下命令:wget https://golang.org/dl/go1.20.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
sudo dnf install golang -y
配置环境变量:
编辑~/.bashrc(或~/.bash_profile),添加以下内容:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GO111MODULE=on
使配置生效:
source ~/.bashrc
验证安装:
go version
# 输出类似:go version go1.20.3 linux/amd64
Delve(dlv)是Go语言的源代码级调试器,支持断点、单步执行、变量查看等功能。
安装Delve
若Go版本≥1.16,直接使用go install安装最新版:
go install github.com/go-delve/delve/cmd/dlv@latest
若Go版本<1.16,需先克隆源码再安装:
git clone https://github.com/go-delve/delve.git
cd delve
go install
验证安装:
dlv version
# 输出类似:Delve Debugger Version: 1.20.0
(可选)配置环境变量
将Delve路径加入PATH,方便全局调用:
编辑~/.bashrc,添加:
export PATH=$PATH:$(go env GOPATH)/bin
生效:
source ~/.bashrc
为了让Delve获取调试信息(如变量名、行号),需在编译时保留调试符号。默认情况下,go build会自动包含调试信息,无需额外参数。若需自定义输出文件名:
go build -o myapp # 生成带调试信息的二进制文件
注意:避免使用-ldflags="-w -s"(会剥离调试信息),若需优化体积,可在调试完成后添加。
基础调试(直接调试程序)
在程序目录下,执行以下命令启动调试:
dlv exec ./myapp
启动后,Delve会进入交互模式,显示以下提示符:
(dlv)
远程调试(适用于服务器场景)
若需在本地调试运行在CentOS服务器上的程序,需启动Delve调试服务器:
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./myapp
其中:
--listen=:2345:指定Delve监听的端口(默认2345);--headless=true:以无头模式运行(无终端交互);--api-version=2:指定API版本(兼容主流IDE)。进入Delve交互模式后,可使用以下命令进行调试:
break main.main # 在main函数入口设置断点
break main.go:10 # 在指定文件的第10行设置断点
breakpoints
continue # 运行至下一个断点
step # 进入函数内部
next # 跳过函数调用(执行下一行)
print variableName # 查看指定变量的值
print variableName.Type # 查看变量类型
stack # 显示当前调用堆栈
quit
VS Code是常用的Go开发IDE,支持Delve调试,配置步骤如下:
安装VS Code及Go扩展
创建launch.json文件
Ctrl+Shift+D);launch.json文件;{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Go Program",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}", // 当前工作区目录
"env": {},
"args": [] // 可添加命令行参数,如 ["--port=8080"]
}
]
}
启动调试
F5),即可启动调试会话。通过以上步骤,即可在CentOS环境下完成Golang调试工具的配置,并使用Delve或VS Code进行高效的代码调试。