[Top] [Contents] [Index] [ ? ]

GNU Nana: improved support for assertions and logging in C and C++

This manual documents how to install and use the Nana library which provides improved support for assertion checking and logging in C and C++.

1. Introduction  Overview
2. Installing the Nana library  Installing nana
3. Invoking Nana  Compiling, linking and generating gdb commands
4. Interface  Interface to nana library functions
5. Nana Shortform Generator.  Nana shortform generation
6. Nana Performance Measurement  
7. Tracing tools  
8. Using Nana  Some examples
9. FAQ  Frequently Asked Questions
10. Future work  Future work/projects
A. Index  

 -- The Detailed Node Listing ---

Introduction

1.1 Related work  
1.2 Assert.h considered harmful  
1.3 Scope of this document  

Installing the Nana library

2.1 Required Software  
2.2 Optional Software  
2.3 Configure  
2.4 Variables for ./configure  
2.5 Supported Platforms  
2.6 Supported Debuggers  
2.7 Known Problems  
2.8 Bug Reports  
2.9 New Versions  

Interface

4.1 nana.h: the main header file  
4.2 WITHOUT_NANA: disabling all nana code for portability.  
4.3 I.h: C based invariant checking  
4.4 DI.h: debugger based invariant checking  
4.5 L.h: support for printf style logging  
4.6 L_buffer.h: a circular buffer for logging.  
4.7 L_times.h: recording events and times.  
4.8 DL.h: support for printf style logging  
4.9 GDB.h: sending plain gdb commands to the debugger  
4.10 Q.h: support for quantifiers  
4.11 Qstl.h: quantifiers for STL containers.  
4.12 now.h: measuring time  
4.13 cycles.h: access to CPU cycle counting registers.  
4.14 eiffel.h: eiffel type assertions  
4.15 assert.h: a drop in replacement for assert.h  
4.16 calls.h: checking/printing many objects/facts.  

cycles.h: access to CPU cycle counting registers.

4.13.1 RDTSC: cycle timing for Pentium, Cyrix, etc  

eiffel.h: eiffel type assertions

4.14.1 EIFFEL_CHECK: enabling and disabling checking.  
4.14.2 DOEND: adding DO ... END  
4.14.3 REQUIRE, ENSURE, CHECK, etc.  

Tracing tools

7.1 Statement level tracing  
7.2 Library tracing  

Using Nana

8.1 Simplest example  
8.2 Syslog  
8.3 GNU Programs: how to avoid nana sometimes  
8.4 Embedded Systems: testing non-deterministic systems.  
8.5 Realtime Systems  
8.6 A database  
8.7 Program Visualisation: pretty pictures  



This document was generated by Marius Tomaschewski on February, 12 2004 using texi2html