安装工具

  • go,支持go语言编译。MAC下推荐使用使用brew安装go
    • Linux,Win环境安装方法参考 安装 Go
1
brew install go
  • delve,支持go语言调试
1
brew install go-delve/delve/delve
  • 安装IDE。这里选择GoLand,支持代码声明和引用之间跳转,支持使用delve进行调试,调试时貌似不能在watch窗口中调用函数

    • 我在使用vs code断点调试时发现不能正常显示局部变量,遂放弃
    • 更多环境配置参考 Go开发工具
    • GoLand是jetBrains家族的go IDE 下载地址

准备源码

  • 下载go ethereum 源码,至${HOME}/go/src/github.com/ethereum/go-ethereum(MAC下GOPATH为${HOME}/go)源码地址
  • 由于不可描述原因,可能网络连接会出现问题,请自行google解决
1
go get github.com/ethereum/go-ethereum

编译调试

  • 打开GoLand,加载go-ethereum目录为工作空间
    • go get 相关依赖包,比如github.com/syndtr/goleveldb/leveldb。如果缺少依赖,相关依赖包import会标红
    • GoLand会去检测go和delve的bin目录,不需要额外配置就可以愉快地阅读代码了
    • Edit Configurations 添加 Go Build
    • 配置完之后进入debug
    • 编译的二进制文件在${HOME}/test/build/目录下
1
2
3
4
5
6
7
8
# Edit Configuration 配置
# ${HOME} 请自行替换为本机的用户目录
Run Kind: Directory
Directory: ${HOME}/go/src/github.com/ethereum/go-ethereum/cmd/geth
Output directory: ${HOME}/test/build
Workding directory: ${HOME}/test
Go tool arguments: -i
Program arguments: --datadir data

持续学习中,理解可能有误,敬请谅解

版权所有,转载请注明来源