温馨提示×

ubuntu golang错误怎么排查

小樊
42
2026-10-28 09:01:53
栏目: 编程语言

在 Ubuntu 上排查 Golang 错误,通常可以按下面这套思路来,从编译错误、运行错误、环境配置、日志与调试几个方面入手。


一、先确认基础环境

1. 查看 Go 是否安装正确

go version

如果提示 command not found:

sudo apt install golang-go
# 或安装官方版本

2. 查看环境变量

go env

重点关注:

  • GOPATH
  • GOROOT
  • GO111MODULE
  • GOPROXY

常见 Ubuntu 问题:

export GOPROXY=https://proxy.golang.org,direct

二、编译错误排查

1. 查看完整报错

go build -x
go build -v

2. 常见编译错误

  • 包找不到

    cannot find package
    

    解决:

    go mod tidy
    go get xxx
    
  • 依赖版本冲突

    go mod verify
    go clean -modcache
    

三、运行错误排查

1. 直接运行看错误

go run main.go

2. 查看 panic 信息

Go 的 panic 会打印:

  • 出错文件
  • 行号
  • 调用栈

示例:

panic: runtime error: invalid memory address

重点看:

goroutine 1 [running]:
main.main()
    /home/user/main.go:10 +0x45

四、日志与调试

1. 打印日志

import "log"

log.Println("debug info")

2. 使用 Delve 调试(推荐)

安装:

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

调试:

dlv debug main.go

常用命令:

  • break main.main
  • continue
  • print var

五、常见 Ubuntu 特有坑

1. 权限问题

sudo chmod +x binary

2. 端口被占用

sudo lsof -i:8080

3. 防火墙

sudo ufw status

六、系统级排查

1. 查看进程

ps aux | grep go

2. 查看系统日志

journalctl -u your-service

3. 内存 / CPU

top
htop

七、建议你这样提供信息(方便精确定位)

如果你愿意,可以把下面信息发我:

  1. 完整报错信息(复制终端内容)
  2. go version
  3. go env
  4. 出错的代码片段
  5. Ubuntu 版本(lsb_release -a)

我可以直接帮你定位具体错误原因。

0 踩