摘要:时至今日,调试仍然占据软件开发过程中近70%的时间;以断点的设置和检查为基础的传统交互式调试依旧是实际工作中最常用的错误定位手段.日常调试过程中,断点的选择和调试的效率主要依赖于调试人员自身的经验以及对所调试程序的理解程度.提出一种基于最小调试边界的断点自动生成方法.最小调试边界描述了一个由程序执行轨迹上一组轨迹点构成的结合.该集合具有对错误传播的阻隔性,以及所对应的程序状态规模最小化的特征.受益于最小调试边界(minimum debugging frontier set,简称MDFS)的错误阻隔性,一旦查明其上的程序状态是否符合设计预期,即可确定错误触发位置与该MDFS在程序执行轨迹上的先后顺序,将错误触发的范围限定在MDFS的一侧.而状态规模的最小化也减轻了用户检查断点处语句实例的开销.为评价断点质量,还制定了一组断点评价标准,用于考量断点与程序失效之间的关联性、断点本身的易判性以及对调试收敛的帮助.实验结果表明,采用该方法生成的断点具有检查开销低、加速调试收敛等优势;采用所提供的断点的调试流程,与基于经典错误定位方法的流程相比,能以更低的人工开销定位更多的错误.