找了三天的BUG

  由于项目经理不在,所以有些问题就只能找我了。唉,到现在也不是项目经理,他们去培训,而我却不能去。我的水平是不够好,但比起有些项目经理,也不见得差啊。是因为女生?今年请产假?不知。

  为了模块的共享性,有些文件是原项目经理写。特别是初始入口之类的地方。然后,我写了一个主要模块。后来,另外一个同事,觉得功能差不多,就整个复制过来,修改了一下。然后,问题就出来了:地址无法访问。

 不知道大家对这个错误怎么理解的,一个内存出错的原因。晕,这种问题最难查了。我那个模块是好的,复制过来的却出错了,而且是一个地址错误。晕。。。。

  第一天,主要是看哪些地方有不同,当然,主要是后台与我一样的模块。找啊找,也没到可疑之处。由于程序不能跟踪(不知道为什么,用C++写的就不能跟踪,再说,这种错误跟踪也解决不了问题)。头都大了。

  第二天,终于发现有可能发生问题的一个地方。指针是带出来的,但是这个指针所指的却是函数的一个私有变量,那不是有可能在外面用时,已释放。好。new一个,啊。正确了。开心的回家了。

  第三天,那同事去测试,怎么还不行?由于前天是在linux测试(主要是为了调试),提交到Aix后没测试。linux下多跑几次,还是有误的。真是晕了。不停的写cout,编译生成测试。怎么一个结构,在私有变量中定义,却不能使用。但如果在函数中定义再使用,却没问题。难道是前台带过来的数据不对?不管三七二十一,把前台的数据换成我的模块,唉,又是编译,测试还是不行。没办法,查找后台的入口函数处。好像也没问题。不对啊,不会是没有初始化吧,所以私有变量(结构的定义)不能用。快查初始化的地方,比较。真的没初始化啊。真是晕了。。。。

  没有初始化,函数的调用竟然没问题,只是用到私有变量时却有。听上去,没有三天的工作量啊。是的,主要是调试的头晕晕的,还有,可能感觉不甘心。当然,这中间还包含了一堆的.h文件,也不确定是哪个问题。因为内存出错时,有时并不一定出错。所以开始怀疑任何一个可疑的地方。

  总算解决了。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页