C语言问题定位总结

二分搜索法

git bisect 命令,可以定位问题引入的第一个commit,如下图:
image

用法举例:
1、下载模拟代码:

$ git clone git@github.com:bradleyboy/bisectercise.git
$ cd bisectercise

2、浏览器打开网页,网页上是一个计数器,有两个按钮。点击+号按钮,可以看到计数器没有递增,反而递减,这说明代码有问题。(实际生产中,它可以使我们的编译的二进制包,观察二进制包是否由bug):

$ open index.html

3、检查代码提交历史

$ git log --pretty=oneline

4、使用git bisect start启动查错

$ git bisect start [终点] [起点]

5、起点是第一次提交4d83cf(当然,如果我们已知某个commit之前没有出错,那么这个commit id就作为我们的起点),终点是最近一次的HEAD

$ git bisect start HEAD 4d83cf

6、执行上述命令后,会切换到中间的commit,如果index.html正常,则标记为:

git bisect good

如果不正常,则标记为:

git bisect bad

7、不断重复这个过程,最终会定位到第一次出问题的commit,再进行问题定位:

b47892 is the first bad commit

8、定位完成后,使用如下命令回到当前commit,进行问题修复:

git bisect reset
posted @ 2022-10-23 21:53  Mr.van_Gogh  阅读(44)  评论(0编辑  收藏  举报