3c24ceae44ed2b44151cda8cea7e40e074a43031
[nobug] / doc / overview.txt
1 ____
2 Everyone makes mistakes, but with NoBug you won't make them twice!
3 ____
4
5 Nobug is a debugging library for instrumenting C and C++ programs
6 inspired by ideas originating from Design-by-Contract.
7
8 HEAD- Overview;;
9
10 The following features are provided by NoBug:
11
12   * Three different check levels: from detailed to final no-overhead
13   * Scope tags: tell whenever a function or loop is considered to be bug free
14   * Precondition, Postcondition and Invariant checks and generic assertions
15   * Data structures can be dumped
16   * Application activities can be logged
17   * Runtime customizable logging via an environment variable
18   * Different logging targets to stderr, syslog, debugger, ...
19   * Annotation of your sourcecode about known bugs, things to do, etc.
20   * Tracking resources (files, locks, etc.) used by your program; help in
21     detecting misuse
22   * Detecting potential deadlocks
23   * Simulate errors by injecting faults
24   * Additionally, the NoBug project is used to maintain a script and
25     some tools to setup testsuites
26
27 In contrast to traditional debuggers, NoBug is a non-interactive debugger that
28 is linked to your application doing hard-coded tests in an efficient, way
29 without much overhead. Depending in the build level you choose NoBug features
30 will be integral part of your application making it possible to gather
31 debugging data for each stage of the application development, including
32 collecting debugging infos for finally deployed applications.
33
34 PARA What NoBug can not do;;
35
36 NoBug is a (macro-)library, it is not a C/C++ language extension. This
37 means that code must be called at runtime to benefit from the set up
38 contracts. Whats not tested is likely slipping through the net. Being
39 part of the program itself it is affected by memory corruption,
40 certain kinds of misuse may introduce new bugs (assert expressions with
41 side effects for example).
42