Partial orders for parallel debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Consistent detection of global predicates
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
Model checking
Verifying sequential consistency using vector clocks
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Detecting Global Predicates in Distributed Systems with Clocks
WDAG '97 Proceedings of the 11th International Workshop on Distributed Algorithms
Synthesizing Monitors for Safety Properties
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Monitoring Programs Using Rewriting
Proceedings of the 16th IEEE international conference on Automated software engineering
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Detection of global predicates: techniques and their limitations
Distributed Computing
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Efficient Decentralized Monitoring of Safety in Distributed Systems
Proceedings of the 26th International Conference on Software Engineering
Searching for deadlocks while debugging concurrent haskell programs
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Automating comprehensive safety analysis of concurrent programs using verisoft and TXL
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Rewriting-Based Techniques for Runtime Verification
Automated Software Engineering
Efficient dependency tracking for relevant events in shared-memory systems
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
From scenarios to aspects: exploring product lines
SCESM '05 Proceedings of the fourth international workshop on Scenarios and state machines: models, algorithms and tools
Dynamic analysis of java applications for multithreaded antipatterns
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Combining test case generation and runtime verification
Theoretical Computer Science - Abstract state machines and high-level system design and analysis
Efficient exploration of service-oriented architectures using aspects
Proceedings of the 28th international conference on Software engineering
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Formal Verification of Simulation Traces Using Computation Slicing
IEEE Transactions on Computers
jPredictor: a predictive runtime analysis tool for java
Proceedings of the 30th international conference on Software engineering
Predictive runtime verification of multi-processor SoCs in SystemC
Proceedings of the 45th annual Design Automation Conference
Efficient dependency tracking for relevant events in concurrent systems
Distributed Computing
Predictive Typestate Checking of Multithreaded Java Programs
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
A race-detection and flipping algorithm for automated testing of multi-threaded programs
HVC'06 Proceedings of the 2nd international Haifa verification conference on Hardware and software, verification and testing
Parametric and sliced causality
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Reflecting on aspect-oriented programming, metaprogramming, and adaptive distributed monitoring
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Decentralized runtime analysis of multithreaded applications
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Runtime verification with the RV system
RV'10 Proceedings of the First international conference on Runtime verification
Concurrency-oriented verification and coverage of system-level designs
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Java-MOP: a monitoring oriented programming environment for java
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Semi-formal development of a fault-tolerant leader election protocol in erlang
FATES'04 Proceedings of the 4th international conference on Formal Approaches to Software Testing
Detecting errors in multithreaded programs by generalized predictive analysis of executions
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Revising UNITY programs: possibilities and limitations
OPODIS'05 Proceedings of the 9th international conference on Principles of Distributed Systems
Predicting concurrency failures in the generalized execution traces of x86 executables
RV'11 Proceedings of the Second international conference on Runtime verification
Parallel assertions for architectures with weak memory models
ATVA'12 Proceedings of the 10th international conference on Automated Technology for Verification and Analysis
Runtime verification of microcontroller binary code
Science of Computer Programming
Hi-index | 0.00 |
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 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 predict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JMPaX), and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind.