中文

利用值域监控的C程序故障检测:初步结果

软件工程 2015-05-11 v1

摘要

本技术报告介绍了作为 AutoSeer 项目一部分所做的工作。我们在该项目中的工作是开发一种用于 C 语言的源到源编译器 MANET,可用于对被测应用的关键部分进行插桩。意图是引导编译流程,并使用 LARA 提供的面向方面方法(Aspect-Oriented Approach)定义插桩策略。这使得原始目标应用与插桩次要关注点相分离。本工作的目标之一是开发一个源到源 C 编译器,根据输入策略修改代码。这些修改可提供针对性能的代码转换和用于调试的插桩,但在本工作中它们被用于注入收集某些变量在运行时取值信息的代码。该编译器受一种 AOP 方法支持,得以定义插桩策略。我们决定扩展现有的源到源编译器 Cetus,并将其与 LARA 耦合,LARA 是一种部分从目标编程语言抽象出来的 AOP 语言。我们提出并评估了一种通过监控变量值域来检测 C 程序故障的方法。我们考虑了多种监控策略,并使用了两个实际应用程序:GZIP 文件压缩器和 ABS(一家工业合作伙伴提供的程序)。不同的策略在 LARA 中指定并使用 MANET 自动应用。实验结果表明,我们的方法具有潜力,但受限于未考虑数组和控制变量中的值。与更传统的将输出与预期结果比较的方法相比,对于 ABS 我们得到约 54% 的预测准确率,对于 GZIP 为 83%。

关键词

引用

@article{arxiv.1505.01878,
  title  = {Fault Detection in C Programs using Monitoring of Range Values: Preliminary Results},
  author = {Pedro Pinto and Rui Abreu and João M. P. Cardoso},
  journal= {arXiv preprint arXiv:1505.01878},
  year   = {2015}
}

备注

53 pages, technical report for work done as part of the AutoSeer project