Runtime safety analysis of multithreaded programs

Koushik Sen, Grigore Rosu, Gul Agha
2003 Proceedings of the 9th European software engineering conference held jointly with 10th ACM SIGSOFT international symposium on Foundations of software engineering - ESEC/FSE '03  
Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to exhaustively analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can
more » ... edict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JM-PaX), and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind.
doi:10.1145/940112.940116 fatcat:ys67juz6yfgzpclbv2c4d5gozm