PMD is a framework for the detection of communication-related errors in concurrent programs using post-mortem analysis. It employs a static analysis of the source code to build a model of the program, which is dynamically enhanced with crucial run-time information from a dedicated hardware monitor. The notion of Region of Channel Usage (RCU) is introduced for detecting these errors efficiently. PMD is sufficiently general-purpose to handle a variety of concurrent programming languages, such as Occam2 and Joyce.
- hardware monitoring