Font Size: a A A

A Context-Sensitive And Object-level Concurrency Bug Detection Framework For Java

Posted on:2013-07-04Degree:MasterType:Thesis
Country:ChinaCandidate:D WangFull Text:PDF
GTID:2248330395450370Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the development of computer multi-core technology, the advantages of Java multi-threading technology is increasingly apparent. Multi-threading technology can not only improve program efficiency, but also improve the real-time responsiveness of the program and enhance the user experience. Therefore, the current software products are mostly implemented with multiple threads. However, the multi-threading technology also increases the degree of difficulty to maintain data consistency. Program concurrency errors have a significant impact on software quality.Concurrency bugs are difficult to detect and fix because of the non-determinism of multithreaded applications. Invariant-based bug detection tools are proposed to address this problem. However, state-of-the-art invariant-based bug detection tools focus on C/C++applications, and invariant technologies have not been well studied in Java. By studying intensively on managed languages, we make two major observations for Java:1) Recording invariants at object granularity brings new opportunities for Java bug detection tools, because it not only brings fewer interleavings, but also improves the ability to capture multi-variable concurrency bugs.2) Since wrapper methods are recommended and widely used in Java, invariant-based detectors cannot detect concurrency bugs of Java applications accurately without dynamic context information.These observations are important and widely applicable in object-oriented languages, which imply that more factors should be considered in Java bug detection due to the characteristics of Java. This paper proposes a new invariant-based bug detection framework for Java programs, called Jacob, in which object granularity and context sensitive information are used to detect and diagnose concurrency bugs. Besides, we do several optimizations to reduce training sensitive and runtime performance. We implement Jacob in Apache Harmony, and evaluate it with7real world applications. Our results show that Jacob can effectively identify a variety of concurrency bugs, including the challenging multi-variable concurrency bugs.
Keywords/Search Tags:Java, Invariants, Concurrency Bugs, Context Sensitivity, ObjectGranularity, Multi-Variable
PDF Full Text Request
Related items