首页 > 其他分享 >C语言问题定位总结

C语言问题定位总结

时间:2022-10-23 22:01:15浏览次数:48  
标签:总结 定位 git bisect C语言 start commit

二分搜索法

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

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

$ git clone [email protected]: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

标签:总结,定位,git,bisect,C语言,start,commit
From: https://www.cnblogs.com/jiangyi-uestc/p/16819719.html

相关文章

  • 彻底学会Selenium元素定位
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/63099961.html你好,我是测试蔡坨坨。最近收到不少初学UI自动化测试的小伙伴私信,对于元素的定位还是有些头疼,总......
  • python学习第四周总结
    异常常见类型异常处理语法结构异常补充处理异常处理实战应用生成器对象自定义生成器range()功能yield冷门用法生成器表达式模块简介模块的分......
  • 总结
    目录异常生成器对象索引取值与迭代取值的差异模块包编程思想的转变软件开发目录规范常用内置模块collections模块时间模块随机数模块os模块sys模块json模块异常1.异常处......
  • 嵌入式-C语言基础:指针
    指针就是地址,变量的值可以通过两种方式访问,一个是通过变量名,一个是通过地址访问。从而引出一个问题,即什么是指针变量?整型(字符)变量就是存放整形(字符)的变量,指针变量就是存放......
  • C语言_2
    video3~指的是按位取反。此时“位”值的还是二进制位;++k和k++的区别,前置++是先++再使用,后置++是先使用在++;强制类型转换:在想要转换类型的前面加上括号然后给与相应的类型名......
  • C语言笔记基础知识
    ......
  • C语言的练习题
    有1,2,3,4四个数字,那能组成多少个互不相同且无重复数字的三位数?都是多少?分析:三位数可表示为:个位:g,十位:s,百位:b.可以有多少组合:用for语句的嵌套#include<stdio.h>intmain(......
  • 第四周总结复习
    一周总结异常处理异常常见类型AttributeError#访问的对象属性不存在ImportError#无法导入模块或者对象,主要是路径有误或名称错误SyntaxError#pytho......
  • C语言学习--指针--指针和内存单元
    指针和内存单元指针:地址内存单元: 计算机中内存最小的存储单元。    指针的定义和使用inta=10;int*p=&a;*表示指针变量*p=250;指针的解引用,间......
  • chap4 循环结构、chap6 回顾数据类型和表达式 学习总结
     在我认为循环结构是c语言中较为重要的部分,他在使用中也能发挥很大的作用,无论是for还是while或是dowhile,都有他们各自的特点,通常他们在一样的的题目中都可以用,但是在一......