ACM Home Page
Please provide us with feedback. Feedback
jPredictor: a predictive runtime analysis tool for java
Full text PdfPdf (249 KB)
Source
International Conference on Software Engineering archive
Proceedings of the 30th international conference on Software engineering table of contents
Leipzig, Germany
SESSION: Program analysis table of contents
Pages 221-230  
Year of Publication: 2008
ISBN:978-1-60558-079-1
Authors
Feng Chen  University of Illinois, Urbana, IL, USA
Traian Florin Serbanuta  University of Illinois, Urbana, IL, USA
Grigore Rosu  University of Illinois, Urbana, IL, USA
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 138,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1368088.1368119
What is a DOI?

ABSTRACT

jPredictor is a tool for detecting concurrency errors in Java programs. The Java program is instrumented to emit property-relevant events at runtime and then executed. The resulting execution trace is collected and analyzed by Predictor, which extracts a causality relation sliced using static analysis and refined with lock-atomicity information. The resulting abstract model, a hybrid of a partial order and atomic blocks, is then exhaustively analyzed against the property and errors with counter-examples are reported to the user. Thus, jPredictor can "predict" errors that did not happen in the observed execution, but which could have happened under a different thread scheduling. The analysis technique employed in jPredictor is fully automatic, generic (works for any trace property), sound (produces no false alarms) but it is incomplete may miss errors). Two common types of errors are investigated in this paper: dataraces and atomicity violations. Experiments show that jPredictor is precise (in its predictions), effective and efficient. After the code producing them was executed only once, jPredictor found all the errors reported by other tools. It also found errors missed by other tools, including static race detectors, as well as unknown errors in popular systems like Tomcat and the Apache FTP server.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
Apache Commons project. http://commons.apache.org/.
 
3
Apache FTP server project. incubator.apache.org/ftpserver/.
4
 
5
F. Chen and G. Rosu. Predicting concurrency errors at runtime using sliced causality. Technical Report UIUCDCS-R-2005-2660, Department of CS at UIUC, 2005.
6
 
7
F. Chen and G. Rosu. Parametric and Sliced Causality. In Computer Aided Verification (CAV'07), 2007.
 
8
F. Chen and G. Rosu. Parametric and termination-sensitive control dependence - extended abstract. In Static Analysis Symposium (SAS'06), 2006.
 
9
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, and S. Ur. Multithreaded java program test generation. IBM Systems Journal, 41(1):111--125, 2002.
 
10
 
11
A. Farzan and M. Parthasarathy. Causal atomicity. In Computer Aided Verification (CAV'06), 2006.
12
 
13
14
 
15
Java. http://java.sun.com.
 
16
jPredictor. http://fsl.cs.uiuc.edu/jPredictor/.
17
18
19
20
 
21
A. Sen and V. K. Garg. Detecting temporal logic predicates in distributed programs using computation slicing. In International Conference on Principles of Distributed Systems (OPODIS'03), 2003.
22
 
23
K. Sen, G. Rosu, and G. Agha. Detecting errors in multithreaded programs by generalized predictive analysis of executions. In Formal Methods for Open Object-Based Distributed Systems (FMOODS'05), 2005.
 
24
Soot website. http://www.sable.mcgill.ca/soot/.
 
25
Apache group. Tomcat. http://jakarta.apache.org/tomcat/.
26
27
28


Collaborative Colleagues:
Feng Chen: colleagues
Traian Florin Serbanuta: colleagues
Grigore Rosu: colleagues