在搭建調試環境前,需先確保CentOS系統已安裝Golang。以下是兩種常用安裝方式:
適用于CentOS 7及以上版本,操作簡便:
# 更新系統包列表
sudo yum update -y
# 安裝Golang(CentOS 8+用dnf)
sudo yum install golang -y
若需使用最新版本,可通過官方下載二進制包:
# 下載最新Go安裝包(替換為當前最新版本,如go1.21.0)
wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz
# 解壓至/usr/local目錄
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
編輯~/.bashrc(當前用戶)或/etc/profile(全局),添加以下內容:
export GOROOT=/usr/local/go # Go安裝目錄
export GOPATH=$HOME/go # 工作目錄(存放代碼、依賴)
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 添加Go命令到PATH
export GO111MODULE=on # 啟用Go Modules(推薦)
使配置生效:
source ~/.bashrc # 或source /etc/profile
運行以下命令,若輸出版本號則安裝成功:
go version
Delve(dlv)是Go語言的原生調試工具,支持斷點、單步執行、變量查看等功能。
使用Go命令安裝最新版本:
go install github.com/go-delve/delve/cmd/dlv@latest
檢查Delve版本,確認安裝成功:
dlv version
為了讓Delve能正確調試,需編譯時保留調試符號(默認已包含,無需額外參數):
# 進入項目目錄
cd /path/to/your/project
# 編譯程序(生成帶調試信息的二進制文件)
go build -o myapp
啟動調試會話:
dlv exec ./myapp
常用命令:
break main.main:在main函數設置斷點continue(或c):繼續執行程序至下一個斷點next(或n):執行下一行(不進入函數)step(或s):執行下一行(進入函數)print variable(或p variable):打印變量值quit(或q):退出調試若使用VS Code,可配置launch.json實現可視化調試:
golang.go){
"version": "0.2.0",
"configurations": [
{
"name": "Launch with Delve",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}",
"env": {},
"args": []
}
]
}
若需在本地調試遠程CentOS服務器上的程序,需通過Delve的遠程調試功能:
# 在程序目錄下執行(--listen指定端口,--headless無前端,--api-version兼容)
dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./myapp
以VS Code為例:
launch.json,添加“Remote Attach”配置:{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Remote",
"type": "go",
"request": "attach",
"mode": "remote",
"remotePath": "${workspaceFolder}",
"port": 2345,
"host": "your_server_ip"
}
]
}
go get -u github.com/go-delve/delve/cmd/dlv)-gcflags="-N -l"禁用優化(如go build -gcflags="-N -l" -o myapp)go install golang.org/x/tools/gopls@latest安裝語言服務器通過以上步驟,即可在CentOS上完成Golang調試環境的搭建,并通過Delve或VS Code實現本地/遠程調試。