NoBug is a debugging library for instrumenting C and C++ programs
NoBug is a library which provides assertions, logging statements, and annotations for C and C++ programs. It includes pre-/post-condition and invariant checks, as well as generic assertions. Checks are enabled based on build-levels and scope tags. It also includes debugger support (valgrind), dumping of data structures, logging your application’s activities, runtime customizable logging via environment variables, different logging targets (ringbuffer, stderr, syslog, debugger, etc.), and annotation of your source code regarding known bugs, things to do, and planned things. It can track resources and detect deadlocks. Further it can be used to instrumentate your source to simulate errors by injecting faults and do coverage checking to find out if all (instrumentated) errors are properly handled. Additionally, the NoBug project is used to maintain a script and some tools to setup testsuites
Tarballs are available at:
You can obtain a development version using Git. The Git repository can be cloned from git://git.pipapo.org/nobug:
git clone git://git.pipapo.org/nobug
The Source is browseable through gitweb http://git.pipapo.org/?p=nobug;a=summary
There is an anonymous pushable git repository at
Code can be pushed there without authentication, do not trust this code unreviewed. The purpose of this mob repository is to have an easy way for contributors to send fixes and improvements upstream. Feel free to push your changes there by opening your own branch and announce what you pushed on the mailinglist.
This repository is also browseable by gitweb http://git.pipapo.org/?p=mob/nobug;a=summary
NoBug is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
For users who are not able to use GPL’ed software relicensing is possible. To make this possible, developers and contributors are requested to comply with a "Contributor Agreement" the rationale behind this is explained in the documentation.