Hostname: page-component-7b7567c8c-fvjsw Total loading time: 0 Render date: 2026-11-14T20:06:45.739Z Has data issue: false hasContentIssue false

Generic program monitoring by trace analysis

Published online by Cambridge University Press:  12 August 2002

ERWAN JAHIER
Affiliation:
IRISA/INSA, Campus Universitaire de Beaulieu, F-35042 Rennes cedex, France
MIREILLE DUCASSÉ
Affiliation:
IRISA/INSA, Campus Universitaire de Beaulieu, F-35042 Rennes cedex, France
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Program execution monitoring consists of checking whole executions for given properties, and collecting global run-time information. Monitoring gives valuable insights and helps programmers maintain their programs. However, application developers face the following dilemma: either they use existing monitoring tools which never exactly fit their needs, or they invest a lot of effort to implement relevant monitoring code. In this paper, we argue that when an event-oriented tracer exists, the compiler developers can enable the application developers to easily code their own monitors. We propose a high-level primitive called foldt which operates on execution traces. One of the key advantages of our approach is that it allows a clean separation of concerns; the definition of monitors is totally distinct from both the user source code and the language compiler. We give a number of applications of the use of foldt to define monitors for Mercury program executions: execution profiles, graphical abstract views, and two test coverage measurements. Each example is implemented by a few simple lines of Mercury.

Information

Type
Research Article
Copyright
© 2002 Cambridge University Press