traceexp is an Erlang module for on-line analysis of traces. It provides the possibility to analyse at runtime streams of Erlang trace messages generated by the Erlang runtime system.
This work is partly funded through the ProTest project by the European Commission.
The means of analysis is by defining a regular expression, which is continuously matched against an input stream of Erlang trace messages. Conceptually such streams of Erlang trace messages are infinite. Regular expression symbols may contain variables, which are shared between different symbols. Thus one can in a flexible manner establish relations between different but related events (e.g., checking that a request with a certain user-id is never followed by a reject for the same user-id). When a regular expression matches a segment of the trace message stream, a user defined function is called (e.g., to provide diagnostic output). The approach taken in the Traceexp tool is inspired by the work on "trace matches" in the article "Adding Trace Matching with Free Variables to AspectJ" by Chris Allan et.al. in the proceedings of OOPSLA 2005.
git clone http://babel.ls.fi.upm.es/software/traceexp.git