squished bug

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


NoBug ships with detailed documentation in a README file, you can read it online too or download a PDF for printing a hardcopy.



Tarballs are available at:

Git Access

Official Repository

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

Mob Repository

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.

Development and Support

When you need help with NoBug, have some ideas about potential features or think you found a bug, then you can contact the NoBug community and developers by sending mail to the NoBug mailinglist.