Diagnostics

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.

Download

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

Latest News

Winter School on Verification

The Austrian Society for Rigorous Systems Engineering (ARiSE) and the Vienna Center for Logic and Algorithms (VCLA) are organizing a joint winter school on verification at Vienna University of Technology from 6-10 February 2012. Apart from ARiSE/VCLA students, the school will be open to outside students. Details are available from the VCLA website.

Continue reading

CfP: Workshop on Exploiting Concurrency Efficiently and Correctly (EC^2 2010)

The annual Workshop on Exploiting Concurrency Efficiently and Correctly (EC2) is a forum that brings together researchers working on formal methods for concurrency, and those working on advanced parallel applications. Its goal is to stimulate incubation of ideas leading to future concurrent system design an verification tools that are essential in the multi-core era.

Continue reading

Full news archive