温馨提示×

debian怎样调试golang程序

小樊
37
2026-09-08 06:25:22
栏目: 编程语言

在 Debian 上调试 Golang 程序,常见方式有以下几种,从最常用进阶逐步介绍。


一、使用 Delve(推荐,Go 专用调试器)

1. 安装 Delve

sudo apt update
sudo apt install golang-go git -y

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

确保 ~/go/bin 在 PATH 中:

export PATH=$PATH:~/go/bin

验证:

dlv version

2. 调试方式

(1)调试当前目录程序

dlv debug

(2)调试指定包

dlv debug ./main.go

(3)调试已编译的二进制

dlv exec ./your-program

(4)附加到正在运行的进程

dlv attach <pid>

3. 常用 Delve 命令

命令 说明
break main.main 设置断点
break main.go:20 在指定行断点
continue / c 继续执行
next / n 下一行
step / s 进入函数
print x 打印变量
locals 当前局部变量
stack 调用栈
quit 退出

二、使用 VS Code(图形化调试,最简单)

1. 安装

sudo apt install code

VS Code 插件:

  • Go(官方)
  • Delve 会自动安装

2. 调试步骤

  • 打开 Go 项目
  • 设置断点
  • F5 启动调试
  • 支持变量查看、调用栈、单步执行

三、使用 GDB(不推荐但可用)

⚠️ Go 对 GDB 支持有限,尤其是 goroutine

sudo apt install gdb
gdb ./your-program

常用:

break main.main
run
bt

四、日志与 pprof(生产环境常用)

1. 打印日志

log.Println("debug info")

2. pprof(性能调试)

import _ "net/http/pprof"
go tool pprof http://localhost:6060/debug/pprof/profile

五、常见问题(Debian)

1. dlv: command not found

export PATH=$PATH:~/go/bin

2. 权限问题

sudo dlv attach <pid>

3. 容器 / root 限制

dlv --headless --listen=:2345

推荐组合

开发阶段:Delve / VS Code
线上问题:pprof + 日志
❌ 不推荐:GDB

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

  • 你是 本地调试 还是 服务器调试
  • 是否使用 Docker
  • 是否 远程调试

我可以给你更具体的配置示例。

0