A Golang Debugger Book

分享:  

18年开始学习go时,发现了一款调试器delve,陆陆续续地看了些源码、调试标准的东西,发现调试器是一个很好的切入视角来认识计算机系统,就想把这些东西理顺、分享一下。到现在为止,对开发工具链的认识都还有些认识上的不足,关键还是,觉得调试器就好比一个放大镜,放大一倍看清内存变量,放大两倍看清类型系统,放大三倍看清机器物理结构……这是简单的,涉及到运行时、操作系统、硬件等的特性,我是觉得很有意思,尤其是对部分想了解这些知识的人来说,还是有一定的参考意义的。

https://github.com/hitzhangjie/golang-debugger-book。

后来工作变动没有持续投入了,19年下半年支持trpc也没太多时间投入,19年年底的时候买了ipad花了连续几个周末啃了300页dwarf标准,坚持写完了dwarf相关的部分。后面开始支持epc又没时间了……

现在各项工作陆陆陆续续有了眉目,也想把之前放下的东西再捡起来,感兴趣可以简单翻下,如果有小伙伴也有兴趣的话,欢迎业余时间一起继续下去,倒不是觉得是项多么出彩的内容,就是觉得有些值得深究的东西想去探索一下,还有就是一项工作搁置太久会有很浓的挫败感。

腾讯的小伙伴们很优秀,如果能有小伙伴们助攻,这个应该会加速很多。

  1. dwarf v4标准解析 已完成

  2. dwarf数据提取 go标准库已提供

  3. delve源码解析 一小部分

  4. go类型系统、运行时、调试器结合 待补充

  5. go新版本准备切换dwarf v5、更好的linker,有些相关的知识,涉及到compiler、linker、debugger的协作…

  6. 其他

其实,还有很多内容要补充,我也不知道最终会变成啥样,可能就是现在这样……曾经试图邀请几个小伙伴来搞下,可能本身没什么吸引力吧,最终还是这样。

感兴趣才能坚持下去,每次想到它,都有种立即想投入的冲动,一个人的周末有点有限 :)