nd_debug

Name

nd_debug -- 

Synopsis



#define     D                               (x)
#define     D_ASSERT                        (exp, msg)
#define     D_ASSERT_PTR                    (ptr)
#define     D_ENTER
#define     D_RETURN
#define     D_RETURN_                       (x)

Description

Details

D()

#define     D(x)

Use this macro to output debugging information. x is the content as you would pass it to printf(), including braces to make the arguments appear as one argument to the macro. The macro is automatically deleted if -DDEBUG is not passed at build time.


D_ASSERT()

#define     D_ASSERT(exp, msg)

The macro outputs msg if the expression exp evaluates to FALSE.


D_ASSERT_PTR()

#define     D_ASSERT_PTR(ptr)

The macro asserts the existence (i.e. non-NULL-ness) of the given pointer, and outpus a message if it is NULL.


D_ENTER

#define     D_ENTER

The macro updates internal debugging state when entering the function where this macro is used. Use it at the beginning of a function, but don't forget to properly match up D_ENTER with D_RETURN! The macro outpus the name of the entered function indented by the current nesting level.


D_RETURN

#define     D_RETURN

The macro updates internal debugging state when leaving the function where this macro is used. Use this macro wherever the function can be left, and don't forget D_ENTER.


D_RETURN_()

#define     D_RETURN_(x)

Same as D_RETURN, but for return with an argument.