开发者社区> 问答> 正文

有哪些快速进入Go源码阅读状态的入口?

已解决

有哪些快速进入Go源码阅读状态的入口?

展开
收起
甜甜的嘻嘻嘻 2022-09-15 16:55:24 347 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    以1.15.2 版本Go源码为例。

    相关 Go 源码位置:

    • compiler

    go/src/cmd/compile/*

    • linker

    go/src/cmd/link/internal/ld/*

    • package loader

    go/src/cmd/go/internal/load/*

    • runtime

    go/src/runtime/*

    目标代码生成:

    • go/src/cmd/compile/internal/gc/obj.go:55:注意第 67 和第 72 行,这里是两个入口;

    • go/src/cmd/compile/internal/gc/iexport.go:244:注意 280 行,这里会记录path 相关数据。

    库哈希生成算法:

    • go/src/cmd/link/internal/ld/lib.go:967:注意第 995~1025 行,这里计算 pkg 的hash。

    • go/src/runtime/symtab.go:392:关键数据结构;

    • go/src/runtime/plugin.go:52:链接期 hash 与运行时 hash 值校验点;

    • go/src/cmd/link/internal/ld/symtab.go:621:链接期 hash 赋值点;

    • go/src/cmd/link/internal/ld/symtab.go:521:运行时 hash 赋值点。

    以上内容摘自《阿里开发者手册-Golang专题》电子书,点击https://developer.aliyun.com/ebook/download/7797可下载完整版

    2022-09-15 17:20:06
    赞同 展开评论 打赏
问答分类:
Go
问答标签:
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载