【技术实现步骤摘要】
本专利技术涉及计算机调试领域,尤其涉及一种动态断点的自动生成方法及系统。
技术介绍
程序调试是发现并减少计算机程序中错误的过程。典型的调试流程包括三步I)复现错误执行过程。2 )设置一个检查位置,并检查该位置上的程序状态是否符合设计预期。其中,对指定位置上程序状态的检查表现为对该位置上一组可见表达式的计算结果的检查。 3)根据2)的检查结果,选择下一个检查位置,直至定位到导致程序执行失败的根源语句。上述过程是一个将错误查找范围从全程序执行轨迹向错误原因所在的位置逐步收敛的过程,其间包含若干次迭代,每次迭代对应一次断点的选择、命中与检查。在每一次迭代,调试人员针对当前需要分析的程序轨迹(整个程序执行轨迹的一个子集),选定一个检查位置,一旦确定该位置上的程序执行状态是否符合程序设计意图,即可初步判断该位置与错误的初始触发位置间的先后顺序。上述方法决定了以断点位置为界分割出两部分轨迹中将有一个部分被作为新一轮迭代的分析范围。然而,在实际调试过程中,对断点的选择、检查以及对收敛方向的判断面临如下问题I)断点的可判性。程序执行轨迹上某个位置对应的程序状态表现为一组表达式在 ...
【技术保护点】
一种动态断点的自动生成方法,其特征在于,包括:步骤1,在程序执行过程中,利用动态插桩技术,收集程序语句的执行实例,实例之间的执行顺序以及依赖关系,依此创建动态依赖图;步骤2,利用程序动态切片技术,提取动态依赖图与程序失效描述相关的部分;步骤3,将步骤2输出的动态依赖图中的结点和边互换,将调试范围转化成状态流程图;步骤4,生成动态断点以及断点处需要检查的表达式的集合;步骤5,收集用户对所提供的断点以及断点处需要检查的表达式的集合的判断结果,根据该判断结果,更新调试范围和失效描述,并将控制转移到步骤2或步骤3。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:李丰,霍玮,陈聪明,李龙,衷璐洁,冯晓兵,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。