Fabric调试异常

作者在使用chaincode进行智能合约开发的过程中,使用Goland + Golang + win10_X64作为开发环境:

GoLand 2018.1.4
Build #GO-181.5087.39, built on May 24, 2018
Licensed to youBBS JRE: 1.8.0_152-release-1136-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0 go1.11.4 windows/amd64

但在调试的时候会发生如下错误:

D:\golang\bin\go.exe test -c -tags nopkcs1 -o C:\Users\NewWang\AppData\Local\Temp\___TestBcoin_Init_in_github_com_utxo_chaincode.exe -gcflags "all=-N -l" github.com/utxo/chaincode #gosetup
"E:\GoLand 2018.1.4\bin\runnerw.exe" D:\golang\bin\go.exe tool test2json -t C:\Users\NewWang\.GoLand2018.1\config\plugins\intellij-go\lib\dlv\windows\dlv.exe --listen=localhost:58370 --headless=true --api-version=2 --backend=default exec C:\Users\NewWang\AppData\Local\Temp\___TestBcoin_Init_in_github_com_utxo_chaincode.exe -- -test.v -test.run ^TestBcoin_Init$ #gosetup could not launch process: decoding dwarf section info at offset 0x0: too short

总结网络上提出以下两种解决方案:

  1. 升级Goland 版本到2018.2以上的版本
  2. 使用 go get -u -v github.com/derekparker/delve/cmd/dlv 命令去编译新版本的dlv,然后在通过在 Help -- Edit Custom Properties 中添加: dlv.path=D:/gopath/bin/dlv.exe,来更新dlv到与go适配的版本。

但是第二种方式经过作者的实际测试是无效的,后经过多方检索找到了真正的原因:

在1.10以上的版本中,当应用工程引入plugin的包后debugframe会丢失,导致dlv无法使用。

解决方案:

  1. 等待 1.12 版本中修复这个问题
  2. 将go的版本降低到1.9

参考链接:

https://youtrack.jetbrains.com/issue/GO-5446

https://github.com/golang/go/issues/23733

could not launch process: decoding dwarf section info at offset 0x0: too short的更多相关文章

  1. Goland could not launch process: decoding dwarf section info at offset 0x0: too short 解决方案

    1 前言 Goland版本:2018.1.5 Go:1.11.2 此版本调试不了bug,而且有时会显示could not launch process: decoding dwarf section ...

  2. 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. IDE Goland DEBUG报错(could not launch process: decoding dwarf section info at offset 0x0: too short)

    背景: 在升级GO版本到1.11后发现Goland的Debug报错,如下:could not launch process: decoding dwarf section info at offset ...

  4. 【Golang】Debug :decoding dwarf section info at offset 0x0: too short

    解决方法 通过下面的方式升级dlv 来解决这个问题: go get -u github.com/derekparker/delve/cmd/dlv 下面是我记录的定位问题的过程 问题描述 博主升级到了 ...

  5. could not launch process: debugserver or lldb-server not found: install XCode's command line tools or lldb-server

    0x00 事件 VS 调试 go 的时候,发生了这个错误,导致无法调试: could not launch process: debugserver or lldb-server not found: ...

  6. 真机调试时遇到“Could not launch *** process launch failed: Security”的解决办法

    半年没写ios程序了,打算重新将这块技术捡回来.谁知道写的第一个测试程序在真机上就跑出来因为安全问题不能加载的情况. ios的版本是9.2的.看提示信息是app的启动被ios的安全机制阻挡了. 在手机 ...

  7. Could not launch process failed:security

    是因为  用了 企业的开发者账号   安装的时候需要  在 手机的设置中  找到 描述文件   然后点击信任这个对应的证书   才能使用这个由企业号发布的应用.

  8. 修改并编译golang源码

    最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.ba ...

  9. 一种实现C++反射功能的想法(二)

    在介绍我的思路前, 让我们准备下预备知识 C++是怎么实现类函数的绑定的. 我们知道类的非静态成员函数是存储在全局区, 并在内存中只保存一份副本. 我们调用非静态成员函数是通过类对象进行调用. 那么如 ...

随机推荐

  1. HTML头标签使用-又一次定向,refresh

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. 2938: [Poi2000]病毒

    Description 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码 ...

  3. php魔术变量

    __LINE__   文件中的当前行号 __FILE__ 文件的完整路径和文件名 __DIR__  文件所在的目录 __FUNCTION__  自 PHP 5 起本常量返回该函数被定义时的名字 __C ...

  4. (第一章)改善JavaScript,编写高质量代码。

    根据<编写高质量代码改善JavaScript程序的188个建议>这本书,来记录我目前所了解的建议方式. 建议1:警惕Unicode乱码 根据ECMA标准规定JavaScript语言可以使用 ...

  5. windows 下搭建git服务器,及问题处理。

    最近要做一个源码管理服务器,权衡了一下还是git最适合,搭建服务器前看了网上一些windows下搭建git服务器的帖子,感觉还比较简单,没有太多需要配置的地方,于是开始动手. 我选择的是 gitfor ...

  6. 深入理解C/C++混合编程优秀博文赏析与学习

    1.深入理解C/C++混合编程 2.C/C++ 混合编程 互相调用 3.C代码中如何调用C++ C++中如何调用C 4.C和C++混合编程

  7. python+requests实现接口测试 - cookies的使用

    在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息, 会造成识别失败. 如一些需要用户登录以后才能访问的页面. import requests mya ...

  8. C++学习第一天(helloword)

    C++编译过程 #include <iostream> //iostream 提供了一个叫命名空间的东西,标准的命名空间是std 包含了有关输入输出语句的函数 // input&^ ...

  9. Linux基础命令之文件过滤及内容编辑处理(二)

    . wc 用于统计文件的行数,单词,或字节数 -l # 统计行数 -L # 打印最长行的长度,一般脚本中判断字符长度 -c # 统计字节数 -w # 统计单词数 -m 统计字符数 . iconv 转换 ...

  10. rails使用Kindeditor网页编辑器

    在gemfile中加入(后面版本别丢) gem 'rails_kindeditor', '~> 0.5.0' $ bundle 创建配置文件,并且引入js rails g rails_kinde ...