欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

一般项目中是如何调bug的 ------- 手把手带你体验整个流程

发布时间:2025/3/19 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 一般项目中是如何调bug的 ------- 手把手带你体验整个流程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

调bug流程

  • 一、运行代码,发现错误。
  • 二、找到报错的位置。
  • 三、如果注释后运行正常了,那么就是注释掉的部分有误了(这是最想看到的结果了);
  • 四、于是就认为应该不是这里的锅,那么我们将中main 函数里边调用的开始下手。
  • 五、一般编译器都会有,查看定义,跳转到定义的功能,这很大程度上能让我们快速的找到bug。
  • 六、同方法五类似,找到在这函数中调用函数的问题,或者是该函数本身的问题
  • 七、最后的问题,集中到一个 if 语句中了
  • 八、因为是文件流,我就试试是不是读取到了东西 , 或者是文件没有成功打开,
  • 九、这次的分析就告一段落了,希望能帮到大家

例子只叫大家如何找到bug,不会将到太具体的bug的解决。因为bug太多,解决方法也很多。最重要的是找到bug。
下面以一个真实的案例来带领大家来体验。

一、运行代码,发现错误。

(在这一步,理解要报错的提示,一般编译器都或多或少有点的,如果看不懂可以赋值粘贴到CSDN上看看是否有人也有同样的报错)


在这个报错中,我提取到了切入点,(如上图是画红线的部分)。

二、找到报错的位置。

首先看一下是否有明显语法错误,如果看不出。试一试把这个部分注释掉看是否还会报错(关键)。

发现没有明显的错误 , 于是我试着把它注释掉,注意在注释的时候不要自己弄出错误。(即把与这个代码相关的根着注释掉,所以这里也体现了尽量将重复使用的代码整合会一个函数)。

与其想关联的

三、如果注释后运行正常了,那么就是注释掉的部分有误了(这是最想看到的结果了);

如果没有 , (如下图,还是相同的错误,我就感觉邪门了。。。) 于是将这个错误赋值粘贴 ,搜索看看

搜索结果如下,如果找到相同的那就最好了,没有的话。。。。(本博主就是没有,脸干)

不过在这些类似的结果中好像都提到了new 。刚开始我以为了模板类写错了(毕竟模板类难倒大半好汉呀)。于是将整个头文件和对应的cpp 给注释了(后来发现这个思路不对 , 不要学博主呀)

在注释的时候人已经烦了,最好还是睡了一会儿头脑清醒了。 (⊙o⊙)… 聊正题。

四、于是就认为应该不是这里的锅,那么我们将中main 函数里边调用的开始下手。

首先全注释掉 ,看还有没有,还有就是编译器的问题了。然后一个一个的解放出找到有问题的函数出来。

如上图,在这样操作之后,发现是 如下图

五、一般编译器都会有,查看定义,跳转到定义的功能,这很大程度上能让我们快速的找到bug。

(如下图)

六、同方法五类似,找到在这函数中调用函数的问题,或者是该函数本身的问题

(在这里我是不是又提到了调用的函数,因此将功能模块化很利于我们调bug)

七、最后的问题,集中到一个 if 语句中了


继续

是里边 两条语句的问题 , 然后分析,肯定不会是单独下面一个语句的错,因为如果没有 申请空间就赋值肯定错的。而第一个语句又有new ,再联想到前边搜索的结果。我就想是不是new 的问题呢。
首先试了一下变成 malloc 。结果嘛,看一下这篇博客就知道不能这样,还得用new 。为何不能用malloc
之后呢?我想了想,既然申请一个空间没错,那么就是申请完空间后,第二条语句赋值的时候错了。赋值(这语句是不是很简单。。。),赋值的这个操作过程是没问题的,那么 , 真相只有一个 ,那就是 拿来赋值的 temp 有错。(最后发现,还真是)

八、因为是文件流,我就试试是不是读取到了东西 , 或者是文件没有成功打开,

好家伙不试不知道一试吓一跳呀。竟然是文件打不开的错()服了。这也告诉了一个道理一定要接加一个检查文件是否已经打开的命令。

九、这次的分析就告一段落了,希望能帮到大家

总结

以上是生活随笔为你收集整理的一般项目中是如何调bug的 ------- 手把手带你体验整个流程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。