GoLand调试附加进程时dlv.exe提示Access is denied问题求助
问题描述
使用GoLand调试通过go build构建的进程,按下Ctrl + Alt + F5执行附加操作时,出现以下错误:
"C:\Program Files\JetBrains\GoLand 2022.1.4\plugins\go\lib\dlv\windows\dlv.exe" --listen=127.0.0.1:56356 --headless=true --api-version=2 --check-go-version=false --only-same-user=false attach 3064 -- API server listening at: 127.0.0.1:56356 could not attach to pid 3064: Access is denied.
已尝试的操作:
- 以管理员模式运行GoLand
- 为
dlv.exe赋予管理员权限 - 以提升权限模式启动GoLand
但问题仍未解决。而以管理员模式运行Visual Studio Code,通过以下launch.json配置可成功调试该进程:
{ "version": "0.2.0", "configurations": [ { "name": "Attach to Process", "type": "go", "request": "attach", "mode": "local", "processId": 13932 } ] }
偏好使用GoLand调试器,寻求解决建议。
解决建议
- 更新GoLand内置的dlv版本:
- 打开终端执行
go install github.com/go-delve/delve/cmd/dlv@latest,安装最新稳定版dlv - 进入GoLand的
File > Settings > Build, Execution, Deployment > Debugger > Go,将Delve executable路径改为新安装的dlv路径(通常在GOPATH/bin/dlv.exe)
- 打开终端执行
- 手动启动dlv并通过Go Remote连接:
- 在GoLand中创建
Go Remote调试配置,设置Host为127.0.0.1,自定义端口(如2345) - 以管理员身份打开终端,执行
dlv attach <目标进程PID> --listen=127.0.0.1:2345 --headless=true --api-version=2 --only-same-user=false - 启动GoLand的
Go Remote配置,尝试连接调试
- 在GoLand中创建
- 配置Windows调试权限:
- 打开
secpol.msc(本地安全策略),进入本地策略 > 用户权限分配 > 调试程序 - 将当前用户添加到权限列表中,重启GoLand后重试
- 打开
- 排查安全软件拦截:
临时关闭Windows Defender实时保护或第三方杀毒软件,若问题解决,将dlv.exe和GoLand主程序添加到信任列表 - 确认进程未被其他调试器占用:
关闭所有正在调试目标进程的工具(如VS Code、WinDbg),再尝试GoLand的附加操作
内容的提问来源于stack exchange,提问作者Akshayware
相关产品推荐
相关产品推荐

