# curs_trace 3x

    curs_trace(3x)                                           curs_trace(3x)

## NAME

           _tracef, _tracedump, _traceattr, _traceattr2,
           _nc_tracebits, _tracecchar_t, _tracecchar_t2, _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 * _tracecchar_t(const cchar_t *string);
           char * _tracecchar_t2(int buffer, const cchar_t *string);
           char *_tracechar(int 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.   Additionally,  some  functions  are  only
           available with the wide-character configuration of the li-
           braries.

           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.

           These  functions check the NCURSES_TRACE environment vari-
           able, to set the tracing feature as if trace was called:
                  filter,  initscr,  new_prescr,  newterm,  nofilter,
                  ripoffline, setupterm, slk_init, tgetent

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