go 源码分析 调试安装

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值