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.