Golang中国

大家好,我是个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
#1 hikon • 2016-04-03 00:32

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

bigbear
#2 bigbear • 2016-04-05 13:49

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

aa55941767
#3 aa55941767 • 2016-04-06 12:15

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

fhbzyc
#4 fhbzyc • 2016-04-06 18:44

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

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

newsyue
#5 newsyue • 2016-05-10 19:00

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

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

fanwenjie
#6 fanwenjie • 2016-05-12 15:45

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

saplmm
#7 saplmm • 2016-09-21 18:49

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

hhdev
#8 hhdev • 2016-11-15 16:55

@saplmm 可以参考我这篇博客配置, 解释非常详细.

lvzhongyi
#9 lvzhongyi • 2016-12-14 01:33

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

func
#10 func • 2017-01-03 15:28
func
#11 func • 2017-01-03 15:30

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

Nixus
#12 Nixus • 2017-03-13 16:15

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

Nixus
#13 Nixus • 2017-03-14 01:39

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

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

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。