freebsd-dev/contrib/ncurses/man/curs_memleaks.3x

106 lines
4.7 KiB
Plaintext
Raw Normal View History

.\"***************************************************************************
2020-02-19 16:58:06 +00:00
.\" Copyright 2019,2020 Thomas E. Dickey *
.\" Copyright 2008-2010,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. *
.\"***************************************************************************
.\"
2020-02-19 16:58:06 +00:00
.\" $Id: curs_memleaks.3x,v 1.8 2020/02/02 23:34:34 tom Exp $
.TH curs_memleaks 3X ""
2020-02-07 08:36:41 +00:00
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.na
.hy 0
.SH NAME
2020-02-07 08:36:41 +00:00
\fB_nc_freeall\fP,
\fB_nc_free_and_exit\fP,
\fB_nc_free_tinfo\fP \- \fBcurses\fR memory-leak checking
.ad
.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
2020-02-07 08:36:41 +00:00
\fBvoid exit_curses(int);\fR
.br
\fBvoid exit_terminfo(int);\fR
.sp
/* deprecated */
.br
\fBvoid _nc_freeall(void);\fR
.br
\fBvoid _nc_free_and_exit(int);\fR
2020-02-07 08:36:41 +00:00
.br
\fBvoid _nc_free_tinfo(int);\fR
.SH DESCRIPTION
These functions are used to simplify analysis of memory leaks in the ncurses
library.
.PP
Any implementation of curses must not free the memory associated with
a screen, since (even after calling \fBendwin\fP), it must be available
2020-02-07 08:36:41 +00:00
for use in the next call to \fBrefresh\fP(3X).
There are also chunks of memory held for performance reasons.
That makes it hard to analyze curses applications for memory leaks.
2020-02-07 08:36:41 +00:00
When using the specially configured debugging version of the ncurses library,
applications can call functions which free those chunks of memory,
simplifying the process of memory-leak checking.
.PP
Some of the functions are named with a \*(``_nc_\*('' prefix
because they are not intended for use in the non-debugging library:
.TP 5
\fB_nc_freeall\fP
This frees (almost) all of the memory allocated by ncurses.
.TP 5
\fB_nc_free_and_exit\fP
This frees the memory allocated by ncurses (like \fB_nc_freeall\fP),
and exits the program.
It is preferred over \fB_nc_freeall\fP since some of that memory
may be required to keep the application running.
Simply exiting (with the given exit-code) is safer.
.TP 5
\fB_nc_free_tinfo\fP
Use this function if only the low-level terminfo functions (and
corresponding library) are used.
Like \fB_nc_free_and_exit\fP, it exits the program after freeing memory.
.PP
The functions prefixed \*(``_nc\*('' are normally not available;
they must be configured into the library
at build time using the \fB\-\-disable-leaks\fP option.
That compiles-in code that frees memory that normally would not be freed.
.PP
2020-02-07 08:36:41 +00:00
The \fBexit_curses\fP and \fBexit_terminfo\fP functions
call \fB_nc_free_and_exit\fP and \fB_nc_free_tinfo\fP if
the library is configured to support memory-leak checking.
If the library is not configured to support memory-leak checking,
they simply call \fBexit\fP.
.SH RETURN VALUE
These functions do not return a value.
.SH PORTABILITY
2020-02-07 08:36:41 +00:00
These functions are not part of X/Open Curses;
nor do other implementations of curses provide a similar feature.
.SH SEE ALSO
\fBcurses\fR(3X).