典型bug之死循环

开发由于手抖或者考虑不周全(这里是考虑不周)出现代码中存在死循环,且代码覆盖率不能发现(代码覆盖了未必会触发死循环),

建议每次代码diff时重点关注循环退出条件是否总是成立。可以防止不易触发的死循环存在。

一般常见的死循环形式如下,在for内部处理过程中对循环变量自减,导致退出循环条件不成立。

下面代码给出了退出循环的break语句。

    for(int i=0;i<n;i++)
        {
            处理操作;
            if(满足某种条件)
            {
                处理操作;
                i--;
            }
            //if(满足某种条件)
            //  break;

对于测试稳定性过程中触发的死循环可能存在如下表象:1.cpu占用率一直高于正常值2.qps上不去且下降;

3.cost高于正常值;很可能程序中出现了死循环。

 

posted @ 2021-02-02 20:48  justloving  阅读(272)  评论(0编辑  收藏  举报