mac上开发golang,dlv无法debug,请大家帮忙看看啥问题。

大家好,我是个golang新入门的新手。

最近在学习golang,在mac上使用vscode作为开发工具。

配置完成vscode后,发现其它功能(代码格式化,智能提示灯)都正常,但无法调试,运行调试报错信息如下:
could not launch process: could not fork/exec

如果直接终端运行 go run *.go,运行正常。

后来我尝试直接 ./dlv debug *.go 出现同样的错误。
初步判断是dlv调试程序有什么不对的地方。

麻烦大家帮忙看看如何解决?
备注:
dlv = derekparker/delve
windows平台完全正常,目前只有mac上错误。
另外,已经对delve使用了证书安装

共 13 个回复


hikon

你可以试一下先编译成二进制,然后再dlv exec [./path/to/binary],这样就可以确定是不是dlv的问题了

# 0

bigbear

mac下如果签名正确, 会弹出一个提示框, 让你允许跨进程debug. 如果没有提示框, 应该是证书安装有问题, 证书安装了, 要设置信任模式. 具体看github项目的安装说明.

# 1

aa55941767

应该是签名不对,我问一下mac下只能生成可执行文件,不能直接运行吗?

# 2

fhbzyc

dlv因为外链C的缘故
必须要1.5版本 编译
等你调好了确定可用之后
可以升级到1.6版本

http://pan.baidu.com/s/1gdZkMsV
这有个之前做的教程

# 3

newsyue

我是楼主,这个问题是因为dlv需要codesign签名,否则mac平台因为安全机制问题不允许运行。

希望对遇到同样问题的朋友能有所帮助。

# 4

fanwenjie

brew install go-delve/delve/delve
主要是因为权限问题,必须使用homebrew安装mac定制版delve

# 5

saplmm

请问楼主 @newsyue 这个签名具体是怎么签的啊?我也是新手,太多东西不懂,如果有空麻烦说明一下哈!

# 6

lvzhongyi

同样的问题,我的也是,我用homebrew安装的,也查看了签名,是ok的,就是一直报这个错,题主解决了这个问题吗

# 8

func

# 9

func

GOPATH/bin/dlv 删掉,用brew重新安装

# 10

Nixus

@func 请问: 删除 GOPATH/bin/dlv 后重新 brew install,是和手动添加 keychain cert 然后 CERT=dlv-cert make install 一样的吗?

# 11

Nixus

#11楼的方法可行:直接把 GOPATH/bin/dlv 删掉,之后再试试

我在公司电脑上是手动编译安装的,按照 delve 的 manual installation 进行安装的,是可以的
后来,又在自己电脑上,按照#11楼这位大哥说的,试了一下,也是可以的

# 12