Panic.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
- '"
- '" See the file "license.terms" for information on usage and redistribution
- '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- '"
- '" RCS: @(#) $Id: Panic.3,v 1.3 2001/08/25 20:14:06 dgp Exp $
- '"
- .so man.macros
- .TH Tcl_Panic 3 8.4 Tcl "Tcl Library Procedures"
- .BS
- '" Note: do not modify the .SH NAME line immediately below!
- .SH NAME
- Tcl_Panic, Tcl_PanicVA, Tcl_SetPanicProc, panic, panicVA - report fatal error and abort
- .SH SYNOPSIS
- .nf
- fB#include <tcl.h>fR
- .sp
- void
- fBTcl_PanicfR(fIformatfR, fIargfR, fIargfR, fI...fR)
- .sp
- void
- fBTcl_PanicVAfR(fIformatfR, fIargListfR)
- .sp
- void
- fBTcl_SetPanicProcfR(fIpanicProcfR)
- .sp
- void
- fBpanicfR(fIformatfR, fIargfR, fIargfR, fI...fR)
- .sp
- void
- fBpanicVAfR(fIformatfR, fIargListfR)
- .sp
- .SH ARGUMENTS
- .AS Tcl_PanicProc *panicProc
- .AP "CONST char*" format in
- A printf-style format string.
- .AP "" arg in
- Arguments matching the format string.
- .AP va_list argList in
- An argument list of arguments matching the format string.
- Must have been initialized using fBTCL_VARARGS_STARTfR,
- and cleared using fBva_endfR.
- .AP Tcl_PanicProc *panicProc in
- Procedure to report fatal error message and abort.
- .BE
- .SH DESCRIPTION
- .PP
- When the Tcl library detects that its internal data structures are in an
- inconsistent state, or that its C procedures have been called in a
- manner inconsistent with their documentation, it calls fBTcl_PanicfR
- to display a message describing the error and abort the process. The
- fIformatfR argument is a format string describing how to format the
- remaining arguments fIargfR into an error message, according to the
- same formatting rules used by the fBprintffR family of functions. The
- same formatting rules are also used by the builtin Tcl command
- fBformatfR.
- .PP
- In a freshly loaded Tcl library, fBTcl_PanicfR prints the formatted
- error message to the standard error file of the process, and then
- calls fBabortfR to terminate the process. fBTcl_PanicfR does not
- return.
- .PP
- fBTcl_SetPanicProcfR may be used to modify the behavior of
- fBTcl_PanicfR. The fIpanicProcfR argument should match the
- type fBTcl_PanicProcfR:
- .PP
- .CS
- typedef void Tcl_PanicProc(
- CONST char *fBformatfR,
- fBargfR, fBargfR,...);
- .CE
- .PP
- After fBTcl_SetPanicProcfR returns, any future calls to
- fBTcl_PanicfR will call fIpanicProcfR, passing along the
- fIformatfR and fIargfR arguments. To maintain consistency with the
- callers of fBTcl_PanicfR, fIpanicProcfR must not return; it must
- call fBabortfR. fIpanicProcfR should avoid making calls into the
- Tcl library, or into other libraries that may call the Tcl library,
- since the original call to fBTcl_PanicfR indicates the Tcl library is
- not in a state of reliable operation.
- .PP
- The typical use of fBTcl_SetPanicProcfR arranges for the error message
- to be displayed or reported in a manner more suitable for the
- application or the platform. As an example, the Windows implementation
- of fBwishfR calls fBTcl_SetPanicProcfR to force all panic messages
- to be displayed in a system dialog box, rather than to be printed to the
- standard error file (usually not visible under Windows).
- .PP
- Although the primary callers of fBTcl_PanicfR are the procedures of
- the Tcl library, fBTcl_PanicfR is a public function and may be called
- by any extension or application that wishes to abort the process and
- have a panic message displayed the same way that panic messages from Tcl
- will be displayed.
- .PP
- fBTcl_PanicVAfR is the same as fBTcl_PanicfR except that instead of
- taking a variable number of arguments it takes an argument list. The
- procedures fBpanicfR and fBpanicVAfR are synonyms (implemented as
- macros) for fBTcl_PanicfR and fBTcl_PanicVAfR, respectively. They
- exist to support old code; new code should use direct calls to
- fBTcl_PanicfR or fBTcl_PanicVAfR.
- .SH "SEE ALSO"
- abort(3), printf(3), exec(n), format(n)
- .SH KEYWORDS
- abort, fatal, error