Diagnostics is a unified framework for code annotation, logging, program monitoring, and unit-testing.

The annotations of diagnostics provide simple trace messages, tracing method entry and exit, checks (which potentially fail), asserts (which should never fail), invariance checking on method entry and exit, and a number of annotations for testing.

A program built with diagnostics can be compiled either at audit, debug, or production level. At audit level, each component is also checking its own correctness, e.g., each class checks its own invariance. At debug level, each component checks that it is used correctly, e.g., a method is checking its preconditions but is not asserting its loop invariants. At production level, only those checks remain which can fail on corrupt external input.

The annotations provide a stream of logging events which are delivered to number of loggers. A logger can select a number of logging events and write them to file, or it can be used by a software package to monitor failures and to react on them. In particular, a unit-testing logger checks for erroneous behaviour during unit-testing.


For Debian and Debian-based distributions see also http://packages.debian.org/diagnostics

Latest News

Questions answered by Leslie Lamport

Leslie Lamport is going to answer questions about a Mathematical View of Computer Systems in Informatikhörsaal on Tuesday at 6pm. Check the announcement at the VCLA website and do not forget to watch the lecture beforehand.

Continue reading

Helmut Veith 1971-2016

It is with the deepest sadness that we announce Helmut Veith’s passing on March 12, 2016. Helmut was a brilliant researcher, an inspiring collaborator, a stimulating teacher, a generous friend, and a wonderful father and husband. He leaves a void that will be impossible to fill. Our thoughts are with his family and friends.

Continue reading

Full news archive