前言
在前边几篇文章中分享了Go编译过程中的源码实现,本文主要是想分享一下我是怎么调试Go的源代码的(如果你很熟悉的话,可以跳过本文)。本文主要是分享两种Go源码的调试方法
- Goland的debug
- dlv工具
本文我还会以抽象语法树为例,来通过dlv对它的构建过程进行调试
Goland的debug调试Go源码
下边以调试Go编译的入口文件为例
编辑debug配置
填写配置信息
打断点,并开始执行
调试
这些调试按钮的功能其实跟其他的IDEA是一样的,之前整理过,这里不重复整理了,不清楚的小伙伴可以看这里
dlv工具调试Go源码
安装
这里以mac为例
启动
常用命令
可以通过下边的方式查看一些常用的命令
dlv调试抽象语法树构建
下边利用dlv来调试Go编译过程中的抽象语法树构建。我这里没有粘代码,你可以打开源代码对着下边看
- 启动dlv,并调试Go编译的入口文件
- 设置断点、continue的使用、n的使用(r 设置编译器编译目标文件)
- 在指定文件的指定位置设置断点
- 打印抽象语法树构建出来的结果(xtop)
你也可以打印xtop下边元素的值,比如查看xtop第一个元素的左节点