记一次 Debug 经历

最近修改了一个 Go 语言的开源项目,花一天时间加了几百行代码进去,然后开始了漫长的 debug 历程,耗时五天之后,终于成功把修改后的系统跑了起来。
在此记录一下大型项目 debug 经验。

修改源码的时候需要加:

  1. 执行路径的 log
  2. 关键数据的 log

主要步骤如下:

  1. 新建 dev 分支,开始修改源码。
  2. 修改源码之后不要直接 git add *; git commit -m "feature",建议使用 git add -e filename 添加改动内容,这个时候不要把添加的 log 加进去。
  3. commit 修改内容之后,创建新的 devlog 分支,在 devlog 分支把添加的 log add & commit,假设这次 commit 的 hash 是 4032e67.
  4. 切换 main 分支,创建 mainlog 分支,只和并 devlog 分支的最新一次提交:git cherry-pick 4032e67,如果用冲突需要手动 conflict。
  5. 分别运行 mainlogdevlog 的代码,然后对比我们加的 log,根据差异定位 bug。

主要用到的命令是 git cherry-pick 这个命令,可以只 merge 某一次 commit,这样就不需要在不同的分支添加 log 了。手动在不同分支维护 log 信息比较枯燥乏味,而且难以时刻保持一致,导致后续对比 log 困难。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值