zoukankan      html  css  js  c++  java
  • JetBrains GoLand 以debug运行Go程序时出现could not launch process: decoding dwarf section info at offset 0x0: too short报错之保姆级别解决方案

    这是一篇写给刚开始学习Go语言而在搭建环境可能遇到问题的小萌新的文,大神请自行绕路哈(0-0)

    有天,我把Go运用环境升到最新版1.16后,用以前一直在用的JetBrains GoLand 2017.3.3 x64版本运行了搭建的gin框架项目时,使用debug模式后,启动就出现了这样一条异常信息:could not launch process: decoding dwarf section info at offset 0x0: too short——
    image

    奇怪的是,run模式运行就正常,当时我第一感觉是,可能是debug插件有问题。

    后来百度一番后,发现这确实是Go版本过新而JetBrains GoLand的debug插件版本过老的原因,原本想试试换新一版JetBrains GoLand,但想了一下,这一个小问题,是否可以更快捷地解决呢?若能快捷解决的话,也比再去找一款破解版的新款JetBrains GoLand安装方便。

    网上很多方案,但也不知道哪种有用,在试错了多次后,发现其中一种是真的有用。

    故而想把我的操作过程详细记录下来,希望可以帮助其他在使用JetBrains GoLand学习Go出现debug异常的小伙伴。

    这一个debug错误,应属于Delve调试插件已经过老原因,无法适配新版的Go运用环境。

    那么,Delve工具是什么呢?

    开源软件库是这样介绍的:Delve 是一个 Go 语言的调试器,目标是给 Go 提供一个简单和特性齐全的调试工具,并且是容易调用和使用的。

    简而言之,当JetBrains GoLand使用debug时,其实就是使用到了Delve的debug命令。

    你可以在JetBrains GoLand使用dlv --help,就会出现其具备的命令功能,其中的debug命令就是我们要用到的——
    image

    既然如此,若是dlv(Delve 简写)版本过低的原因,那好办,不妨先升级一下div。

    一、下载div新版本

    执行go get -u github.com/derekparker/delve/cmd/dlv

    image

    这时候,可能会出现 RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054,这是远程从GitHub上拉去的dlv文件超过本地设置下载文件大小限制的原因,故而把本地git下载限制调大即可,例如:git config --global http.postBuffer 624288000。

    image

    再执行上面的go get -u github.com/derekparker/delve/cmd/dlv,就可以正常更新了,执行成功后,进入到你的GOPATH目录下,就可以看到多了一个bin目录,且目录底下有一个dlv.exe文件,即证明新版本Delve 下载完成。

    image

    至于GOPATH目录在哪里,其实在下载Go的运行环境时,它会自动在电脑系统环境变量里帮你设置,例如,我的是在——
    image

    二、替换JetBrains GoLand编译器的本地div工具路径

    设置文件所在路径:Help->Edit Custom Properties

    image

    进入到Edit Custom Properties后,设置新div的配置如下:

    dlv.path=C:/Users/Administrator/go/bin/dlv
    

    其中,C:/Users/Administrator/go是你的系统环境变量里的%GOPATH%对应路径,我这里用到了绝对路径,不知道直接用dlv.path=%GOPATH%/bin/dlv可否也行,暂时没有进一步尝试,感兴趣的小伙伴可自行验证。

    设置完的配置如下:

    image

    完成这一步后,需要重启一下JetBrains GoLand,选择路径File->Invalidate Caches /Restart

    等待重启完成,就可以打一个断点,试一下debug是否可行了,经验证,已可以正常进行debug运行,接下来就可以愉快地啪~敲Go语言代码了。

    image

    作者:朱季谦
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    高级(线性)素数筛
    Dijkstra(迪杰斯特拉)算法
    简单素数筛
    【解题报告】 POJ1958 奇怪的汉诺塔(Strange Tower of Hanoi)
    4 jQuery Chatting Plugins | jQuery UI Chatbox Plugin Examples Like Facebook, Gmail
    Web User Control Collection data is not storing
    How to turn on IE9 Compatibility View programmatically in Javascript
    从Javascrip 脚本中执行.exe 文件
    HtmlEditorExtender Ajax
    GRIDVIEW模板中查找控件的方式JAVASCRIPT
  • 原文地址:https://www.cnblogs.com/zhujiqian/p/15013777.html
Copyright © 2011-2022 走看看