TclPanic(3) Tcl Library Procedures TclPanic(3)
NAME
TclPanic, TclPanicVA, TclSetPanicProc, panic, panicVA - report fatal
error and abort
SYNOPSIS
##include <>
void
TclPanic(format, arg, arg, ...)
void
TclPanicVA(format, argList)
void
TclSetPanicProc(panicProc)
void
panic(format, arg, arg, ...)
void
panicVA(format, argList)
ARGUMENTS
CONST char* format (in) A printf-style format string.
arg (in) Arguments matching the format
string.
valist argList (in) An argument list of arguments
matching the format string.
Must have been initialized using
TCLVARARGSTART, and cleared
using vaend.
TclPanicProc *panicProc (in) Procedure to report fatal error
message and abort.
DESCRIPTION
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 TclPanic to
display a message describing the error and abort the process. The for-
mat argument is a format string describing how to format the remaining
arguments arg into an error message, according to the same formatting
rules used by the printf family of functions. The same formatting
rules are also used by the builtin Tcl command format.
In a freshly loaded Tcl library, TclPanic prints the formatted error
message to the standard error file of the process, and then calls abort
to terminate the process. TclPanic does not return.
TclSetPanicProc may be used to modify the behavior of TclPanic. The
panicProc argument should match the type TclPanicProc:
typedef void TclPanicProc(
CONST char *format,
arg, arg,...);
After TclSetPanicProc returns, any future calls to TclPanic will call
panicProc, passing along the format and arg arguments. To maintain
consistency with the callers of TclPanic, panicProc must not return;
it must call abort. panicProc should avoid making calls into the Tcl
library, or into other libraries that may call the Tcl library, since
the original call to TclPanic indicates the Tcl library is not in a
state of reliable operation.
The typical use of TclSetPanicProc 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 wish
calls TclSetPanicProc 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).
Although the primary callers of TclPanic are the procedures of the Tcl
library, TclPanic is a public function and may be called by any exten-
sion 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.
TclPanicVA is the same as TclPanic except that instead of taking a
variable number of arguments it takes an argument list. The procedures
panic and panicVA are synonyms (implemented as macros) for TclPanic
and TclPanicVA, respectively. They exist to support old code; new
code should use direct calls to TclPanic or TclPanicVA.
SEE ALSO
abort(3), printf(3), exec(n), format(n)
KEYWORDS
abort, fatal, error
Tcl 8.4 TclPanic(3)
|