`libnetdude` Manual
Prev |  | Next

# libnd_debug

## Name

libnd_debug --

## Synopsis

    void        libnd_debug_enter               (const char *function);
    void        libnd_debug_return              (const char *function);
    gboolean    libnd_debuggable                (void);
    #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

### libnd_debug_enter ()

    void        libnd_debug_enter               (const char *function);

`function` :

### libnd_debug_return ()

    void        libnd_debug_return              (const char *function);

`function` :

### libnd_debuggable ()

    gboolean    libnd_debuggable                (void);

Returns :

### 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.

`x` :

  debugging information.

### D_ASSERT()

    #define     D_ASSERT(exp, msg)

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

`exp` :

  expression to evaluate.

`msg` :

  message to output if `exp` fails.

### 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`.

`ptr` :

  pointer to check.

### 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.

`x` :

Prev | Home | Next
libnd | Up | libnd_filter