温馨提示×

centos golang调试怎么弄

小樊
32
2026-10-20 09:02:33
栏目: 编程语言

在 CentOS 上调试 Golang 程序,常用有几种方式,从简单到专业逐步介绍:


一、最基础:使用 fmt.Println(不推荐长期用)

fmt.Println("debug:", x)

✅ 简单
❌ 侵入代码、效率低


二、使用 dlv(Delve,Go 官方推荐调试器)✅✅✅

1. 安装 Delve

# 安装 git 和编译环境(如果没装)
sudo yum install -y git golang

# 安装 dlv
go install github.com/go-delve/delve/cmd/dlv@latest

# 确认安装
~/go/bin/dlv version

如果 go install 失败,可手动:

git clone https://github.com/go-delve/delve.git
cd delve
go install ./cmd/dlv

2. 本地调试

dlv debug main.go

常用命令:

break main.main        # 打断点
continue               # 运行
next                   # 单步
step                   # 进入函数
print x                # 打印变量
locals                 # 查看局部变量
quit

3. 调试已编译程序

dlv exec ./myapp

4. 远程调试(非常常用)

服务端(CentOS)

dlv exec --listen=:2345 --headless=true --api-version=2 ./myapp

本地(VS Code / GoLand)

  • 连接 ip:2345
  • 使用 remote debug

三、VS Code 远程调试(推荐)

1. CentOS 上运行

dlv debug --headless --listen=:2345 --api-version=2 --accept-multiclient main.go

2. VS Code launch.json

{
  "name": "Remote",
  "type": "go",
  "request": "attach",
  "mode": "remote",
  "remotePath": "/root/project",
  "port": 2345,
  "host": "服务器IP"
}

四、日志调试(生产环境)

使用 log 或 zap

log.Printf("x=%d", x)

生产建议:

  • zap
  • logrus

五、CPU / 内存分析(性能调试)

go tool pprof http://localhost:6060/debug/pprof/profile

六、常见问题(CentOS)

❌ dlv 报错 could not launch process

解决:

sudo sysctl -w kernel.yama.ptrace_scope=0

❌ 防火墙阻止

sudo firewall-cmd --add-port=2345/tcp --permanent
sudo firewall-cmd --reload

总结推荐

场景 工具
本地调试 dlv debug
服务器调试 dlv exec --headless
IDE 调试 VS Code + dlv
线上问题 pprof + 日志

如果你愿意,可以告诉我:

  • CentOS 版本
  • 是否用 Docker
  • 是否用 VS Code / GoLand

我可以直接给你一套可复制的配置。

0 踩