首页> 外文OA文献 >Summary-Based Pointer Analysis Framework for Modular Bug Finding
【2h】

Summary-Based Pointer Analysis Framework for Modular Bug Finding

机译:基于摘要的指针式分析框架,用于模块化错误查找

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Modern society is irreversibly dependent on computers and, consequently, on software. However, as the complexity of programs increase, so does the number of defects within them. To alleviate the problem, automated techniques are constantly used to improve software quality. Static analysis is one such approach in which violations of correctness properties are searched and reported. Static analysis has many advantages, but it is necessarily conservative because it symbolically executes the program instead of using real inputs, and it considers all possible executions simultaneously. Being conservative often means issuing false alarms, or missing real program errors. Pointer variables are a challenging aspect of many languages that can force static analysis tools to be overly conservative. It is often unclear what variables are affected by pointer-manipulating expressions, and aliasing between variables is one of the banes of program analysis. To alleviate that, a common solution is to allow the programmer to provide annotations such as declaring a variable as unaliased in a given scope, or providing special constructs such as the "never-null" pointer of Cyclone. However, programmers rarely keep these annotations up-to-date. The solution is to provide some form of pointer analysis, which derives useful information about pointer variables in the program. An appropriate pointer analysis equips the static tool so that it is capable of reporting more errors without risking too many false alarms. This dissertation proposes a methodology for pointer analysis that is specially tailored for "modular bug finding." It presents a new analysis space for pointer analysis, defined by finer-grain "dimensions of precision," which allows us to explore and evaluate a variety of different algorithms to achieve better trade-offs between analysis precision and efficiency. This framework is developed around a new abstraction for computing points-to sets, the Assign-Fetch Graph, that has many interesting features. Empirical evaluation shows promising results, as some unknown errors in well-known applications were discovered.
机译:现代社会不可逆转地依赖于计算机,因此也依赖于软件。但是,随着程序复杂性的增加,程序中缺陷的数量也会增加。为了缓解该问题,不断使用自动化技术来提高软件质量。静态分析就是这样一种方法,其中会搜索并报告违反正确性属性的情况。静态分析具有许多优点,但是必须保守一些,因为它象征性地执行程序而不是使用实际输入,并且同时考虑所有可能的执行。保守通常意味着发出错误警报或丢失实际程序错误。指针变量是许多语言中具有挑战性的方面,可能迫使静态分析工具过于保守。通常不清楚指针操作表达式会影响哪些变量,并且变量之间的混叠是程序分析的基础之一。为了缓解这种情况,一种常见的解决方案是允许程序员提供注释,例如将变量声明为给定范围内的未别名,或者提供特殊的构造,例如Cyclone的“ never-null”指针。但是,程序员很少使这些注释保持最新。解决方案是提供某种形式的指针分析,以得出有关程序中指针变量的有用信息。适当的指针分析为静态工具提供了装备,使它能够报告更多错误,而不会冒太多错误警报的风险。本文提出了一种针对指针分析的方法,该方法专门针对“模块化错误发现”而设计。它提供了一个由细粒度“精度维度”定义的指针分析新分析空间,它使我们能够探索和评估各种不同的算法,从而在分析精度和效率之间取得更好的折衷。该框架是围绕一种新的用于计算点集的抽象而开发的,即Assign-Fetch Graph,它具有许多有趣的功能。经验评估显示出令人鼓舞的结果,因为在众所周知的应用程序中发现了一些未知的错误。

著录项

  • 作者

    Buss Marcio;

  • 作者单位
  • 年度 2008
  • 总页数
  • 原文格式 PDF
  • 正文语种 {"code":"en","name":"English","id":9}
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号