tcl_panic(3)
NAME
Tcl_Panic, Tcl_PanicVA, Tcl_SetPanicProc, panic, panicVA report fatal error and abort
SYNOPSIS
#include <tcl.h> void Tcl_Panic(format, arg, arg, ...) void Tcl_PanicVA(format, argList) void Tcl_SetPanicProc(panicProc) void panic(format, arg, arg, ...) void panicVA(format, argList)
ARGUMENTS
- CONST char* format (in) A printf-style for
- mat string.
- arg (in) Arguments matching
- the format string.
- va_list argList (in) An argument list of
- arguments matching
the format string.
Must have been ini
tialized using
TCL_VARARGS_START, and cleared using
va_end. - Tcl_PanicProc *panicProc (in) Procedure to report
- fatal error message
and abort.
DESCRIPTION
When the Tcl library detects that its internal data struc
tures are in an inconsistent state, or that its C proce
dures have been called in a manner inconsistent with their
documentation, it calls Tcl_Panic to display a message
describing the error and abort the process. The format
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, Tcl_Panic prints the for
matted error message to the standard error file of the
process, and then calls abort to terminate the process.
Tcl_Panic does not return.
- Tcl_SetPanicProc may be used to modify the behavior of
Tcl_Panic. The panicProc argument should match the type
Tcl_PanicProc:
- typedef void Tcl_PanicProc(
CONST char *format,
arg, arg,...); - After Tcl_SetPanicProc returns, any future calls to
Tcl_Panic will call panicProc, passing along the format
and arg arguments. To maintain consistency with the
callers of Tcl_Panic, 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 Tcl_Panic indicates the Tcl library is not in a state of reliable operation. - The typical use of Tcl_SetPanicProc arranges for the error
message to be displayed or reported in a manner more suit
able for the application or the platform. As an example,
the Windows implementation of wish calls Tcl_SetPanicProc 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 Tcl_Panic are the proce
dures of the Tcl library, Tcl_Panic is a public function
and may be called by any extension or application that
wishes to abort the process and have a panic message dis
played the same way that panic messages from Tcl will be
displayed. - Tcl_PanicVA is the same as Tcl_Panic except that instead
of taking a variable number of arguments it takes an argu
ment list. The procedures panic and panicVA are synonyms (implemented as macros) for Tcl_Panic and Tcl_PanicVA, respectively. They exist to support old code; new code
should use direct calls to Tcl_Panic or Tcl_PanicVA.
SEE ALSO
abort(3), printf(3), exec(n), format(n)
KEYWORDS
- abort, fatal, error