setup
以后都在 github 更新,请戳 go 编译安装额外版本/runtime包中增加print函数调用
目录
为什么
我们需要能对 go 的源码进行调试, 修改并重建, 第一步是在任意一个内建的运行时包里增加一个 print 调用, 重新编译, 之后用编译好的编译器去运行一个 helloworld 脚本观察输出
还有另一个工具 delve 可配套作为 go 的 debugger 也可以使用
我需要多种方式的支持
怎么做
我们从 src/runtime/map.go
开始
下列的命令和步骤都是在 Mac OS 下运行的, 不同平台的具体命令不同, 但步骤和思路是相同的, 其他平台替换成对应的命令即可
从源代码编译安装另一个版本的 go
比如我先前已经安装过了一个版本的 go
% brew install go
...
% go version
go version go1.14.4 darwin/amd64
我们需要从源代码编译安装一个新的 go
% git clone https://github.com/golang/go.git
% cd go
% git reset --hard dd150176c3cc49da68c8179f740eadc79404d351
% cd src
% vim all.bash
因为我需要频繁的修改源代码, 并且目的是观察输出而不是开发功能模块, 所以我把第 13 行注释掉了, 这样每次构建时, 不需要重新跑一遍测试脚本(大概耗时5分钟)
. ./make.bash "$@" --no-banner
# bash run.bash --no-rebuild
在 make.bash
中, 把 ./cmd/dist/dist bootstrap $buildall $vfl