安装

这里提供了支持的所有平台(操作系统)上安装Delve的说明。 请注意您必须安装Go 1.5或更高版本。 此外如果使用Go 1.5,您必须设置GO15VENDOREXPERIMENT = 1,然后再尝试安装。

OSX

在OSX上插入

请使用以下步骤在OSX上构建和安装Delve

Via Homebrew

如果你安装了HomeBrew,只需运行:

$ brew install go-delve/delve/delve

手动安装

0) 必备条件

确保您具有正确的编译工具链。

这应该是简单的:

xcode-select --install

1)创建自签名证书

你必须创建自签名证书,并使用它签署二进制文件:

打开应用程序“钥匙串访问”(/ Applications / Utilities / Keychain Access.app)

打开菜单 /Keychain Access/Certificate Assistant/Create a Certificate...

选择一个名称(在示例中为dlv-cert),将“Identity Type(身份类型)”设置为“Self Signed Root(自签名根)”,将“Certificate Type(证书类型)”设置为“Code Signing(代码签名)”,然后选择“Let me override defaults(让我覆盖默认值)”。 单击“Continue(继续)”。 您可能想将预定义的365天期间延长到3650天。

单击“Continue(继续)”多次,直到进入“Specify a Location For The Certificate(指定证书的位置)”页面,然后将“Keychain to System(钥匙串设置为系统)”。

如果您不能将证书存储在“System(系统)”钥匙扣中,请在“login(登录)”钥匙扣中创建,然后将其导出。 然后,您可以将其导入到“System(系统)”钥匙扣。

在钥匙串中选择“系统”,你应该找到你的新证书。 使用证书的上下文菜单(不是公钥或私钥),选择“获取信息”,打开“信任”项,并将“代码签名”设置为“始终信任”。

[至少在Yosemite上:]在钥匙串中选择类别Keys - > dlv-cert - >右键单击 - > GetInfo - >Access Control (访问控制) - >选择“允许所有应用程序访问此项目” - >保存更改。

您必须退出“钥匙串访问”应用程序,才能使用证书并通过终止当前运行的“任务门”进程重新启动“任务门”服务。 或者,您可以重新启动计算机。

2)二进制安装

在写go程序的时候首先创建文件夹$GOPATH/src/github.com/derekparker 并且cd 到c$GOPATH/src/github.com/derekparker目录下

注意:如果您使用Go 1.5必须先设置GO15VENDOREXPERIMENT = 1,然后才能继续安装。

GO15VENDOREXPERIMENT env var只是选择进入Go 1.5 Vendor Experiment。(1.6不需要)

所有make命令都假设一个CERT环境变量,其中包含上面创建的证书的名称。 Makefile还假定GOPATH是单值的,不是冒号分隔的。 makefile只需要帮助促进构建和代码签名的过程。

运行以下命令:CERT = dlv-cert make install,它将安装二进制文件并对其进行编码。

有关更多信息,请参阅此安装视频https://www.youtube.com/watch?v=4ndjybtBg74

说明

在构建期间取消代码签名授权提示

如果在使用自签名证书运行make时提示您授权,请尝试以下操作:

打开应用程序“钥匙串访问”(/ Applications / Utilities / Keychain Access.app)

双击与您的自签名证书(示例中的dlv-cert)对应的私钥

选择“Access Control(访问控制)”选项卡

单击“始终允许这些应用程序访问”下的[+],然后从Finder对话框中选择/ usr / bin / codesign

点击“(Save changes)保存更改”按钮

消除“Developer tools access(开发工具访问)”提示运行delve

如果运行dlv时出现此提示:

"Developer tools access needs to take control of another process for debugging to continue. Type your password to allow this"

尝试运行DevToolsSecurity -enable以消除提示。 有关更多信息,请参阅man DevToolsSecurity。

Linux

请使用以下步骤在Linux上构建和安装Delve

在Linux上有两种安装方式。 首先是标准的go get方法:

go get github.com/derekparker/delve/cmd/dlv

或者,您可以克隆repo并运行:

$ make install

注意:如果您使用Go 1.5必须先设置GO15VENDOREXPERIMENT = 1,然后才能继续安装。 GO15VENDOREXPERIMENT env var只是选择进入Go 1.5 Vendor Experiment。

Windows

请使用标准的go get命令在Windows上构建和安装Delve

go get github.com/derekparker/delve/cmd/dlv

注意:如果您使用Go 1.5必须先设置GO15VENDOREXPERIMENT = 1,然后才能继续安装。 GO15VENDOREXPERIMENT env var只是选择进入Go 1.5 Vendor Experiment。

用法

您可以多种方式调用Delve,具体取决于您的使用需求。 Delve使每个尝试都是用户友好的,确保用户必须做最少的工作可能开始调试他们的程序。

请参阅主要使用文档以进一步探索命令。

命令行界面

命令

命令

描述

args

打印函数参数

break

设置一个断点

breakpoints

打印激活的断点信息

clear

删除断点

clearall

删除所有的断点

condition

设置断点条件

continue

运行到断点或程序终止

disassemble

拆解器

exit

退出debugger

frame

在不同的框架上执行的命令

funcs

打印函数列表

goroutine

显示或更改当前goroutine

goroutines

列出程序的全部goroutines

help

打印出帮助信息

list

显示源代码

locals

打印局部变量

next

跳到下一行

on

在遇到断点时执行一个命令

print

评估表达式

regs

打印CPU寄存器的内容

restart

重启进程

set

更改变量的值

source

执行包含delve命令列表的文件

sources

打印源文件列表

stack

打印堆栈跟踪

step

单步执行程序

step-instruction

单步单个执行cpu指令

thread

切换到指定的线程

threads

打印每一个跟踪线程的信息

trace

设置跟踪点

types

打印类型列表

vars

打印某个包内的(全局)变量

API

API文档

Delve公开了主要可以与Delve编程交互的IDEs和编辑器的一个API接口,以便这些程序使用。 API由终端使用,因此无论新功能如何,都将始终保持最新的锁定状态。

使用

为了在“API模式”中运行Delve,只需使用标准命令之一调用,提供--headless标志,如下所示:

$ dlv debug --headless --api-version=2 --log --listen=127.0.0.1:8181

这将以非交互模式启动调试器,侦听指定的地址,并启用日志记录。 当然最后两个标志(log listen)是可选的。

或者如果您要将多个客户端连接到API,也可以指定--accept-multi客户端标志。

您可以使用connect子命令从Delve本身连接headless调试器:

$ dlv connect 127.0.0.1:8181

这对于远程调试很有用。

API 接口

Delve已经可以允许多个客户端/服务器这种方式的架构。因为所有的“业务逻辑”被抽象出实际的客户端/服务器实现,所有允许容易实现新的API接口。

当前API接口

内部文件

TODO(derek parker)

将要做的

这个目录将包含调试器内部和它如何工作的文档。

编辑器集成

demo.gif

安装

可以使用apm install go-debug或在设置中搜索go-debug。

安装delve

查阅https://github.com/derekparker/delve/tree/master/Documentation/installation

绑定的快捷键

f5 运行当前包 (dlv debug)

ctrl-f5 测试运行当前包(dlv test)

shift-f5 重新启动当前的delve会话(r / restart)

f6 停止delve (exit / quit / q)

f8 继续执行 (c / continue)

f9 切换断点

f10 到下一个断电源(n / next)

f11 进入函数 (s / step)

cmd-k cmd-g (mac) / ctrl-k ctrl-g (others) 切换主面板

链接

关于slack的golang社区:Gopher Slack| go-plus

问题?请直接在go-plus频道给我发送消息

已知bugs

当一个函数定义两个(或多个)同名的变量时,delve无法区分它们:locals将打印这两个变量,print将随机选择一个。 参见问题Issue#106。

Delve目前不支持32位系统。 这通常表现为proc / disasm.go中的编译器错误。 参见问题Issue#20。

当Delve使用go之前的版本1.7.0编译时,不能使用Receiver.Method Name语法在远程包中的函数上设置断点。 参见问题Issue#528。

delve应该安装到哪_Golang /Go调试工具delve相关推荐

  1. delve应该安装到哪_golang调试工具Delve

    转自:http://www.cnblogs.com/li-peng/p/8522592.html Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个 ...

  2. delve应该安装到哪_Golang调试工具Delve安装及使用

    一.安装 照着 github 上 delve 项目的安装说明操作, go mod 模式下推荐使用第二种方式. 1.拉取最新 delve 项目代码到本地,编译安装. # cd $GOPATH/src/ ...

  3. Golang调试工具Delve使用简介

    Delve 是一款很不错的 Golang 调试工具,可以实现类似 Visual Studio 的断点调试功能,也可以用来在程序 Crash 的时候生成 Coredump 文件,此外 Delve 也适合 ...

  4. LiteIDE调试工具delve

    1.使用gdb调试报错"/usr/local/bin/gdb was found on system PATH(hint: is GDB installed?)"以及"L ...

  5. delve应该安装到哪_Go调试工具—— Delve

    参考https://github.com/go-delve/delve 安装 首先你必须有等于或高于1.8版本的Go,我的版本是: userdeMBP:go-learning user$ go ver ...

  6. golang调试工具Delve

    转自:http://www.cnblogs.com/li-peng/p/8522592.html Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个 ...

  7. delve应该安装到哪_使用 Delve 代替 Println 来调试 Go 程序 | Linux 中国

    Delve 是能让调试变成轻而易举的事的万能工具包.来源:https://linux.cn/article-12400-1.html 作者:Gaurav Kamathe 译者:Xiaobin.Liu ...

  8. Go调试工具Delve

    安装 首先你必须有等于或高于1.8版本的Go,我的版本是: userdeMBP:go-learning user$ go version go version go1.11.4 darwin/amd6 ...

  9. delve应该安装到哪_go delve安装

    一.安装 照着 github 上 delve 项目的安装说明操作,go mod模式下推荐使用第二种方式. 1.拉取最新 delve 项目代码到本地,编译安装. # cd $GOPATH/src/ # ...

最新文章

  1. centos 安装 openfire
  2. Counting Divisors HDU - 6069
  3. 趁年轻,去硅谷!2021 “神策未来星”春季校园招聘精英项目全面启动!你准备好了吗?
  4. Visual Studio Code 保存代码时报Applying code action Organize Imports
  5. verilog的学习
  6. 文件上传命令rz和下载命令sz的安装
  7. “我觉得,这个项目只需要 2 个小时”
  8. (转载)ARM的字对齐问题总结
  9. Audio驱动开发之音频链路学习笔记
  10. *第八周*数据结构实践项目一【建设顺序串算法库】
  11. 如何PDF转Word文档?快把这些方法收好
  12. java 解析 ts_解析TS - xxdd的个人空间 - OSCHINA - 中文开源技术交流社区
  13. 工业物联网快速解决方案
  14. qq空间进入游戏显示服务器拒绝,显示ptlogin2.qq.com,QQ空间打不开的快速解决办法...
  15. Python 获取文件后缀详解
  16. python-正负数交叉排序
  17. 【调剂】拟接收调剂——安徽工业大学冶金工程学院炼铁新技术研究所
  18. Linux Mysql主从同步常见问题合集
  19. socket编程---send函数recv函数详解
  20. 手机直面屏与曲面屏有什么区别?,很多人都不知道

热门文章

  1. photoshop输出html网页方法
  2. 电脑提示vcomp140.dll丢失怎么办?修复vcomp140.dll丢失的方法
  3. 使用MediaMonkey代替Windows版iTunes来管理iPod
  4. 量化投资算法交易设计
  5. Vuejs设计与实现 —— 渲染器核心 Diff 算法
  6. 发现同一依赖程序集的不同版本间存在无法解决的冲突
  7. [草泥马语] ws2gmh之正则版
  8. android 常见死机问题-如何分析
  9. 中国哪些公司在做大数据
  10. 【Python教程】进阶篇