前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 ># 如何调试go源码

# 如何调试go源码

作者头像
用户1175783
发布2020-05-25 16:29:30
1.7K0
发布2020-05-25 16:29:30
举报

# 如何调试go源码

go版本:1.13.4

# 为什么要调试go源码

相信你有足够的理由让你尝试去调试go源码

# 网络上已有的调试教程

  1. 使用GDB,LLDB等工具命令行的方式调试 优点:工具强大,支持调试多种程序,不限于go 缺点:go不同版本编译的程序,可能需要不同版本的GDB才能调试,命令行麻烦
  2. 使用dlv命令行,或者vscode,Goland等ide工具 优点:go官方推荐,更强到的调试功能,多种ide工具支持 缺点:调试无法进入runtime等私有方法

# 新调试教程

​ 该尝试基于第二种调试方式,然后配合go tool 命令进入源码

# 需要做什么前期准备

1. 掌握一条命令

代码语言:javascript
复制
# 编译你的代码并导出程序集信息
go tool compile -S main.go >> main.txt

2. 从上一条命令的产物中找对应源码行数的CALL指令

代码语言:javascript
复制
# 主要代码
0x008f 00143 (main.go:7)	CALL	runtime.fastrand(SB)

3. 打开Goland查找入口代码,并设置断点

如果启动调试后编辑器没有反应,可以作如下操作显示goroutings

# 开启源码调试之旅

下面是一个简单的例子

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 如何调试go源码
    • # 为什么要调试go源码
      • # 网络上已有的调试教程
        • # 新调试教程
        • # 需要做什么前期准备
        • # 开启源码调试之旅
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档