
为了能够编译delve,需要安装Go 1.10或更高版本
安装好go后,直接go get即可安装,更多安装教程见: https://github.com/go-delve/delve/tree/master/Documentation/installation
go get github.com/go-delve/delve/cmd/dlv
安装好后,在终端执行dlv或者dlv help 会看到dlv的帮助信息,则说明安装成功
dlv常用命令
delve的目标是成为一个简洁而强大的工具。但如果你不习惯在编译语言中使用源码调试,则可能令人困惑。本文档将提供开始调试go程序所需的全部信息。
调试例子程序如下
├── go.mod
├── go.sum
├── main.go
├── test
└── utils
├── util.go
└── util_test.go
调试程序主要有三个文件,main.go、util.go、util_test.go,内容如下,比较简单,go包管理工具使用的是go module,模块名为test
在vscode debug 的设置中配置launch.json文件
mode 设置为debug时,program的内容${fileDirname}即可,mode 设置为exec时,program的值为二进制文件的路径,通过设置mode的值,即可调试源码和二进制程序(也需要有源码)。mode模式为auto时,测试了下,vscode 并不能通过program的内容来判断是debug还是exec
远程调试时,需要在远程也有源码、二进制包和dlv工具
在远端执行dlv命令
dlv debug --headless --listen=:8989 --api-version=2 --accept-multiclient #用degbug方式启动远程应用程序
dlv exec --headless --listen=:8989 ./test --api-version=2 --accept-multiclient # exec执行当前目录下的test二进制文件
--listen:指定调试端口
--api-version:指定api版本,默认是1
--accept-multiclient:接受多个client调试
在vscode中线下好源码,和远端的源码结构一致。launch.json配置如下:
在vscode中打好断点后,就可以进行远程调试了
1、在win7键盘按“Win+R”开启“运行”框,在其中键入“Regedit”指令后按回车键开启"注册表编辑器"。2、在其中检查“HKEY_CLASSES_ROOT\.vbs”项目的默认值,假若是“VBSFile”的话
3、接着检查注册项“HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command”默认值,应为"%SystemRoot%\System32\WScript.exe" "%1" %*,那就手动改成 .vbs 文件的打开方式,更改成C:\windows\System32\文件下的 WScript.exe 程序。
4、完成更改后,在“运行”框中填进“slmgr.vbs –dlv”指令 或是“ slmgr.vbs –dli”指令去检查win7系统的激活情况,若是检查到没有激活系统,建议利用激活软件去将win7系统激活。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)