一般项目中是如何调bug的 您所在的位置:网站首页 出现了bug 一般项目中是如何调bug的

一般项目中是如何调bug的

2024-06-27 00:15| 来源: 网络整理| 查看: 265

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

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

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

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

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

二、找到报错的位置。

首先看一下是否有明显语法错误,如果看不出。试一试把这个部分注释掉看是否还会报错(关键)。 在这里插入图片描述 发现没有明显的错误 , 于是我试着把它注释掉,注意在注释的时候不要自己弄出错误。(即把与这个代码相关的根着注释掉,所以这里也体现了尽量将重复使用的代码整合会一个函数)。 在这里插入图片描述 与其想关联的 在这里插入图片描述 在这里插入图片描述

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

如果没有 , (如下图,还是相同的错误,我就感觉邪门了。。。) 于是将这个错误赋值粘贴 ,搜索看看 在这里插入图片描述 搜索结果如下,如果找到相同的那就最好了,没有的话。。。。(本博主就是没有,脸干) 在这里插入图片描述 不过在这些类似的结果中好像都提到了new 。刚开始我以为了模板类写错了(毕竟模板类难倒大半好汉呀)。于是将整个头文件和对应的cpp 给注释了(后来发现这个思路不对 , 不要学博主呀)

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

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

首先全注释掉 ,看还有没有,还有就是编译器的问题了。然后一个一个的解放出找到有问题的函数出来。 在这里插入图片描述 如上图,在这样操作之后,发现是 如下图 在这里插入图片描述

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

(如下图)在这里插入图片描述

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

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

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

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

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

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

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

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有