Copyright 2019-2023,2024 Thomas E. Dickey *
Copyright 2000-2016,2017 Free Software Foundation, Inc. *
*
Permission is hereby granted, free of charge, to any person obtaining a *
copy of this software and associated documentation files (the *
"Software"), to deal in the Software without restriction, including *
without limitation the rights to use, copy, modify, merge, publish, *
distribute, distribute with modifications, sublicense, and/or sell *
copies of the Software, and to permit persons to whom the Software is *
furnished to do so, subject to the following conditions: *
*
The above copyright notice and this permission notice shall be included *
in all copies or substantial portions of the Software. *
*
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
*
Except as contained in this notice, the name(s) of the above copyright *
holders shall not be used in advertising or otherwise to promote the *
sale, use or other dealings in this Software without prior written *
authorization. *
***************************************************************************
$Id: curs_trace.3x,v 1.50 2024/04/20 21:24:19 tom Exp $
#include <curses.h>unsigned curses_trace(const unsigned trace-mask);
void _tracef(const char *format, ...);
char *_traceattr(attr_t attr); char *_traceattr2(int buffer, chtype ch); char *_tracecchar_t(const cchar_t *string); char *_tracecchar_t2(int buffer, const cchar_t *string); char *_tracechar(int c); char *_tracechtype(chtype ch); char *_tracechtype2(int buffer, chtype ch);
void _tracedump(const char *label, WINDOW *win); char *_nc_tracebits(void); char *_tracemouse(const MEVENT *event);
/* deprecated */ void trace(const unsigned int trace-mask);
The curses_trace function is always available, whether or not the other trace functions are available: .bP If tracing is available, calling curses_trace with a nonzero parameter updates the trace mask, and returns the previous trace mask.
When the trace mask is nonzero, \%ncurses creates the file \*(``trace\*('' in the current directory for output. If the file already exists, no tracing is done. .bP If tracing is not available, curses_trace returns zero (0).5 TRACE_DISABLE turn off tracing by passing a zero parameter.
The library flushes the output file, but retains an open file-descriptor to the trace file so that it can resume tracing later if a nonzero parameter is passed to the curses_trace function.5 TRACE_TIMES trace user and system times of updates.
5 TRACE_TPUTS trace tputs(3X) calls.
5 TRACE_UPDATE trace update actions, old & new screens.
5 TRACE_MOVE trace cursor movement and scrolling.
5 TRACE_CHARPUT trace all character outputs.
5 TRACE_ORDINARY trace all update actions. The old and new screen contents are written to the trace file for each refresh.
5 TRACE_CALLS trace all curses calls. The parameters for each call are traced, as well as return values.
5 TRACE_VIRTPUT trace virtual character puts, i.e., calls to addch.
5 TRACE_IEVENT trace low-level input processing, including timeouts.
5 TRACE_BITS trace state of TTY control bits.
5 TRACE_ICALLS trace internal/nested calls.
5 TRACE_CCALLS trace per-character calls.
5 TRACE_DATABASE trace read/write of terminfo/termcap data.
5 TRACE_ATTRS trace changes to video attributes and colors.
5 TRACE_MAXIMUM maximum trace level, enables all of the separate trace features.
Some tracing features are enabled whenever the curses_trace parameter is nonzero. Some features overlap. The specific names are used as a guideline.
Because the command-line utilities may call initialization functions such as setupterm, tgetent or use_extended_names, some of their debugging output may be directed to the trace file if the \%NCURSES_TRACE environment variable is set: .bP messages produced in the utility are written to the standard error. .bP messages produced by the underlying library are written to trace.
If \%ncurses is built without tracing, none of the latter are produced, and fewer diagnostics are provided by the command-line utilities.
.dS
\%filter, \%initscr, \%new_prescr, \%newterm, \%nofilter, \%restartterm, \%ripoffline, \%setupterm, \%slk_init, \%tgetent, \%use_env, \%use_extended_names, \%use_tioctl
A few \%ncurses functions are not provided when symbol versioning is used:
_nc_tracebits, _tracedump, _tracemouse
The original trace routine was deprecated because it often conflicted with application names.