首页> 外文会议>Annual ACM conference on object oriented programming, systems, languages and applications >Do I Use the Wrong Definition? DefUse: Definition-Use Invariants for Detecting Concurrency and Sequential Bugs
【24h】

Do I Use the Wrong Definition? DefUse: Definition-Use Invariants for Detecting Concurrency and Sequential Bugs

机译:我使用错误的定义吗? defuse:定义 - 使用不变性,用于检测并发和顺序错误

获取原文

摘要

Software bugs, such as concurrency, memory and semantic bugs, can significantly affect system reliability. Although much effort has been made to address this problem, there are still many bugs that cannot be detected, especially concurrency bugs due to the complexity of concurrent programs. Effective approaches for detecting these common bugs are therefore highly desired. This paper presents an invariant-based bug detection tool, DefUse, which can detect not only concurrency bugs (including the previously under-studied order violation bugs), but also memory and semantic bugs. Based on the observation that many bugs appear as violations to programmers' data flow intentions, we introduce three different types of definition-use invariants that commonly exist in both sequential and concurrent programs. We also design an algorithm to automatically extract such invariants from programs, which are then used to detect bugs. Moreover, DefUse uses various techniques to prune false positives and rank error reports. We evaluated DefUse using sixteen real-world applications with twenty real-world concurrency and sequential bugs. Our results show that DefUse can effectively detect 19 of these bugs, including 2 new bugs that were never reported before, with only a few false positives. Our training sensitivity results show that, with the benefit of the pruning and ranking algorithms, DefUse is accurate even with insufficient training.
机译:软件错误,如并发性,内存和语义错误,可以显着影响系统可靠性。虽然已经努力解决了这个问题,但仍有许多无法检测到的错误,特别是由于并发程序的复杂性导致的并发错误。因此,非常需要检测这些共同突发的有效方法。本文介绍了一种基于不变的错误检测工具,默认,不仅可以检测并发错误(包括先前过渡的订单违规错误),还可以检测内存和语义错误。基于观察到,许多错误显示为对程序员数据流的违规,我们介绍了三种不同类型的定义 - 使用不变性,这些不变性通常存在于序贯和并发程序中。我们还设计了一种算法,可以从程序中自动提取此类不变性,然后用于检测错误。此外,Defuse使用各种技术来修剪假阳性和等级错误报告。我们评估了使用具有20个现实世界并发和顺序错误的十六个现实世界应用程序的亵渎。我们的结果表明,拆卸可以有效地检测这些错误的19个,其中包括以前从未报告过的2个新错误,只有几个误报。我们的训练敏感性结果表明,由于修剪和排名算法的益处,即使训练不足,除音也准确。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号