公司最近一次迭代测试中,打包出来的程序在验证问题单的时候发现没有提交消息到短信中心。
查看模块日志发现在共享内存处理上面有问题,导致N多业务不能完成。经过跟踪到了一个cpp文件的某行。但是发现调用一个检查邮箱的函数就return false了
很是奇怪。经过挂gdb调试也发现函数返回的是正确的值。而为什么一出来就是错误的。当时就在想是不是栈指针错误了,乱了。难道是偏移差一点的原因。
在思考的同时去再次看代码,竟然发现了这样的东东。
if(RC_SUCCESS == try_mail(tc_in_control.m_cl_forward, tc_in_msg));
{
return false;
}
发现问题,在最后一个括号后面竟然有个; 相当于是空语句。
这样不管函数返回值是什么,都会执行return false.
我那个悲催啊。竟然就发生了。
不过还好,被找到了。。。。
×× 复制代码的时候千万要小心。。。