您的位置:首页 > 编程语言 > C语言/C++

c++,一个分号照成的严重bug

2012-06-12 12:44 295 查看
公司最近一次迭代测试中,打包出来的程序在验证问题单的时候发现没有提交消息到短信中心。

查看模块日志发现在共享内存处理上面有问题,导致N多业务不能完成。经过跟踪到了一个cpp文件的某行。但是发现调用一个检查邮箱的函数就return false了

很是奇怪。经过挂gdb调试也发现函数返回的是正确的值。而为什么一出来就是错误的。当时就在想是不是栈指针错误了,乱了。难道是偏移差一点的原因。

在思考的同时去再次看代码,竟然发现了这样的东东。

if(RC_SUCCESS == try_mail(tc_in_control.m_cl_forward, tc_in_msg));
{
return false;
}
发现问题,在最后一个括号后面竟然有个; 相当于是空语句。

这样不管函数返回值是什么,都会执行return false.

我那个悲催啊。竟然就发生了。

不过还好,被找到了。。。。

×× 复制代码的时候千万要小心。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: