前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go 如何调试你的应用程序

Go 如何调试你的应用程序

作者头像
icepy
发布2019-06-24 17:51:35
2.6K0
发布2019-06-24 17:51:35
举报
文章被收录于专栏:子曰五溪

任何一门语言,调试器对于开发来说都非常重要,在我从Go语言社区中瞎逛了一遍,才发现原来Go官方没有实现调试器,而且社区里竟然使用Print的方式来打印调试,想想,这很不科学。于是,继续找了找,才发现一个比较好的方案,那就是dlv(https://github.com/derekparker/delve)。

Dlv,也称为Delve是Go语言的源码调试工具,由derekparker开发,开源于Github。在Mac上配置Go语言开发环境的时候,经常碰到的问题就是Dlv调用总是不成功,无法启动应用,无法调试等等,大部分的问题都与Mac的安全机制有关。

Mac上使用codesign对应用进行签名,没有签名的程序会受到一些限制,例如无法作为调试程序。当然如果为了方便,你可以通过Homebrew安装Homebrew编译好的Dlv。

由于我深度使用vscode,所以我的调试器主要是为了配置vscode,配置起来不复杂只是比较麻烦。

代码语言:javascript
复制
{	
    "version": "0.2.0",	
    "configurations": [
{			
            "name": "Launch",			
            "type": "go",			
            "request": "launch",			
            "mode": "debug",			
            "remotePath": "",			
            "port": 2345,			
            "host": "127.0.0.1",			
            "program": "${fileDirname}",			
            "env": {},			
            "args": [],			
            "showLog": true
        }
   ]
}

先在vscode的市场里找到Go:Rich Go language support for Visual Studio Code,安装完成。

然后在你的项目中,安装dlv

代码语言:javascript
复制
go get -u github.com/derekparker/delve/cmd/dlv

你可以输入go env,先查询一下go的环境配置,主要是GOPATH这一项,如果你没有配置GOPATH,在启动调试器时,会出现如下的报错信息:

Failed to continue: "Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH"."

由于我使用的是zsh,所以我在.zshrc文件中配置GOPATH

export GOPATH="$HOME/go" export PATH="$HOME/go/bin:$PATH"

接着使用xcode-select --install把一些命令行工具安装上,如果安装完成之后,启动调试器,报如下的错误:

could not launch process: EOF

这个时候,说明你安装Command line tools版本太高了,目前dlv还不支持。只能将它删除了,然后在苹果的官网上下载老版本的Command line tools,重新安装即可。

运行 $ sudo rm -rf /Library/Developer/CommandLineTools,然后去

https://developer.apple.com/download/more/ 上下载Command Line Tools (macOS 10.13) for Xcode 9.2 - Dec 4, 2017。

整个调试的事情,花了我大概三个小时,其实细心下来一个一个解决,还是蛮快的,主要利用Google和Github issues,毕竟已经有很多开发者遇到了相同的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 子曰五溪 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档