使用Delve调试Golang程序的方法与技巧
使用Delve调试Golang程序的方法与技巧 是否可以使用 delve 在正在执行的文件中导入的本地包中设置断点?能否请您告知具体操作方法?(这里指的是通过终端操作)
附带问题 - 我正在使用 Atom 编辑器,并安装了 go-debug 包(该包内部使用 delve)… 在 Atom 中是否也能实现相同的功能?(当然,除了 go-debug 之外,我也愿意安装其他包… 我主要追求的是这个功能)
1 回复
更多关于使用Delve调试Golang程序的方法与技巧的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
是的,可以使用Delve在正在执行的Go程序中为导入的本地包设置断点。以下是具体操作方法:
终端操作方法
- 启动Delve调试器:
dlv debug your_main_file.go
- 在本地包中设置断点:
# 方法1:按函数名设置断点
break your_local_package.YourFunctionName
# 方法2:按文件路径和行号设置断点
break /path/to/your/local/package/file.go:42
# 方法3:使用包路径设置断点
break github.com/yourusername/yourproject/yourpackage.YourFunction
- 开始执行程序:
continue
- 查看已设置的断点:
breakpoints
完整示例: 假设你有以下项目结构:
project/
├── main.go
└── pkg/
└── utils/
└── helper.go
在helper.go中设置断点:
# 启动调试
dlv debug main.go
# 在utils包的ProcessData函数设置断点
(dlv) break pkg/utils.ProcessData
# 或在具体文件行号设置断点
(dlv) break ./pkg/utils/helper.go:15
# 开始执行
(dlv) continue
Atom编辑器中的实现
使用go-debug包确实可以实现相同的功能:
- 在Atom中安装go-debug包:
apm install go-debug
-
配置调试:
- 打开你的Go项目
- 按
Ctrl+Shift+D打开调试面板 - 点击配置按钮创建
launch.json
-
在本地包中设置断点:
- 直接打开本地包中的源文件(如
pkg/utils/helper.go) - 在行号旁边点击设置断点(红色圆点)
- 开始调试,当执行到该包中的代码时会自动暂停
- 直接打开本地包中的源文件(如
-
示例配置(在项目根目录创建
.atom/launch.json):
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Go",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}",
"showLog": true
}
]
}
替代方案:如果go-debug无法满足需求,可以考虑安装go-plus包,它提供了更完整的Go语言支持,包括调试功能。
在Atom中设置断点的操作与终端类似 - 只需在本地包文件的相应行号旁点击即可设置断点,调试器会在执行到该位置时暂停。

