# curs_trace 3x

    curs_trace(3x)                                           curs_trace(3x)

## NAME

           _tracef, _tracedump, _traceattr, _traceattr2,
           _nc_tracebits, _tracechar, _tracechtype, _tracechtype2,
           _tracemouse, trace - curses debugging routines

## SYNOPSIS

           #include <curses.h>

           void _tracef(const char *format, ...);
           void _tracedump(const char *label, WINDOW *win);
           char *_traceattr(attr_t attr);
           char *_traceattr2(int buffer, chtype ch);
           char *_nc_tracebits(void);
           char *_tracechar(const unsigned char ch);
           char *_tracechtype(chtype ch);
           char *_tracechtype2(int buffer, chtype ch);
           char *_tracemouse(const MEVENT *event);
           void trace(const unsigned int param);

## DESCRIPTION

           The  trace routines are used for debugging the ncurses li-
           braries, as well as applications which use the ncurses li-
           braries.  These functions are normally available only with
           the debugging library libncurses_g.a, but may be  compiled
           into  any  model (shared, static, profile) by defining the
           symbol TRACE.

           The principal parts of this interface are the  trace  rou-
           tine which selectively enables different tracing features,
           and the _tracef routine which writes formatted data to the
           trace file.

           Calling  trace  with  a  nonzero  parameter opens the file
           trace in the current directory for output.  The  parameter
           is formed by OR'ing values from the list of TRACE_xxx def-
           initions in <curses.h>.  These include:

           TRACE_DISABLE
                turn off tracing.

           TRACE_TIMES
                trace user and system times of updates.

           TRACE_TPUTS
                trace tputs calls.

           TRACE_UPDATE
                trace update actions, old & new screens.

           TRACE_MOVE
                trace cursor movement and scrolling.

           TRACE_CHARPUT
                trace all character outputs.

           TRACE_ORDINARY
                trace all update actions.  The  old  and  new  screen
                contents  are  written to the trace file for each re-
                fresh.

           TRACE_CALLS
                trace all curses calls.  The parameters for each call
                are traced, as well as return values.

           TRACE_VIRTPUT
                trace virtual character puts, i.e., calls to addch.

           TRACE_IEVENT
                trace low-level input processing, including timeouts.

           TRACE_BITS
                trace state of TTY control bits.

           TRACE_ICALLS
                trace internal/nested calls.

           TRACE_CCALLS
                trace per-character calls.

           TRACE_DATABASE
                trace read/write of terminfo/termcap data.

           TRACE_ATTRS
                trace changes to video attributes and colors.

           TRACE_MAXIMUM
                maximum trace level,  enables  all  of  the  separate
                trace features.

           Some  tracing  features are enabled whenever the trace pa-
           rameter is nonzero.  Some features overlap.  The  specific
           names are used as a guideline.

## RETURN VALUE

           Routines  which  return a value are designed to be used as
           parameters to the _tracef routine.

## PORTABILITY

           These functions are not part of the XSI  interface.   Some
           other  curses  implementations  are known to have similar,
           undocumented features, but they are  not  compatible  with
           ncurses.

## SEE ALSO

           curses(3x).

                                                             curs_trace(3x)