Parametric Trace Slicing and Monitoring
نویسندگان
چکیده
Trace analysis plays a fundamental role in many program analysis approaches, such as runtime verification, testing, monitoring, and specification mining. Recent research efforts bring empirical evidence that execution traces are frequently comprised of many meaningful trace slices merged together, each slice corresponding to instances of relevant parameters. For example, a Java program creating iterators i1 and i2 over vector v1 may yield a trace “create〈v1 i1〉 next〈i1〉 create〈v1 i2〉 update〈v1〉 next〈i1〉” parametric in vector v and iterator i, whose slices corresponding to parameter instances “v, i → v1, i1” and “v, i → v1, i2” are “create〈v1 i1〉 next〈i1〉 update〈v1〉 next〈i1〉” and, respectively, “create〈v1 i2〉 update〈v1〉 ”. Several current trace analysis techniques and systems allow the specification of parametric properties, and the analysis of execution traces with respect to each instance of the parameters. However, the current solutions have limitations: some in the specification formalism, others in the type of trace they support; moreover, they share common notions, intuitions, even techniques and algorithms, suggesting that a fundamental study and understanding of parametric trace analysis is needed. This foundational paper gives the first solution to parametric trace analysis that is unrestricted by the type of parametric property or trace that can be analyzed. First, a general purpose parametric trace slicing technique is discussed, which takes each event in the parametric trace and distributes it to its corresponding trace slices. This parametric trace slicing technique can be used in combination with any conventional, non-parametric trace analysis technique, by applying the later on each trace slice. As an instance, a parametric property monitoring technique is then presented, which processes each trace slice online. Thanks to the generality of parametric trace slicing, the parametric property monitoring technique reduces to encapsulating and indexing unrestricted and well-understood nonparametric property monitors (e.g., finite or push-down automata). The presented parametric trace slicing and monitoring techniques have been implemented and extensively evaluated. Measurements of runtime overhead confirm that the generality of the discussed techniques does not come at a performance expense when compared with existing parametric trace monitoring systems.
منابع مشابه
Semantics and Algorithms for Parametric Monitoring
Analysis of execution traces plays a fundamental role in many program analysis approaches, such as runtime verification, testing, monitoring, and specification mining. Execution traces are frequently parametric, i.e., they contain events with parameter bindings. Each parametric trace usually consists of many meaningful trace slices merged together, each slice corresponding to one parameter bind...
متن کاملA Story of Parametric Trace Slicing, Garbage and Static Analysis
This paper presents a proposal (story) of how statically detecting unreachable objects (in Java) could be used to improve a particular runtime verification approach (for Java), namely parametric trace slicing. Monitoring algorithms for parametric trace slicing depend on garbage collection to (i) cleanup data-structures storing monitored objects, ensuring they do not become unmanageably large, a...
متن کاملFrom First-order Temporal Logic to Parametric Trace Slicing
Parametric runtime verification is the process of verifying properties of execution traces of (data carrying) events produced by a running system. This paper considers the relationship between two widely-used specification approaches to parametric runtime verification: trace slicing and first-order temporal logic. This work is a first step in understanding this relationship. We introduce a tech...
متن کاملMarQ: Monitoring at Runtime with QEA
Runtime monitoring is the process of checking whether an execution trace of a running system satisfies a given specification. For this to be effective, monitors which run trace-checking algorithms must be efficient so that they introduce minimal computational overhead. We present the MARQ tool for monitoring properties expressed as Quantified Event Automata. This formalism generalises previous ...
متن کاملAn Overview of MarQ
MarQ is a runtime monitoring tool for specifications written as quantified event automata, an expressive automata-based specification language based on the notion of parametric trace slicing. MarQ has performed well in the runtime verification competition and implements advanced indexing and redundancy elimination techniques. This overview describes the basic structure and functionality provide...
متن کامل