Tcl Library Procedures Tcl_Panic(3TCL)
_________________________________________________________________
NAME
Tcl_Panic, Tcl_PanicVA, Tcl_SetPanicProc, panic, panicVA -
report fatal error and abortSYNOPSIS
#include
voidTcl_Panic(format, arg, arg, ...)
voidTcl_PanicVA(format, argList)
voidTcl_SetPanicProc(panicProc)
void panic(format, arg, arg, ...) voidpanicVA(format, argList)
ARGUMENTSCONST char* format (in) A printf-style format
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 usingTCL_VARARGS_START,
and cleared usingva_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 procedures have been called in a manner inconsistent with their Tcl Last change: 8.4 1Tcl Library Procedures Tcl_Panic(3TCL)
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 tothe same formatting rules used by the printf family of func-
tions. The same formatting rules are also used by the buil-
tin Tcl command format.In a freshly loaded Tcl library, Tcl_Panic prints the for-
matted error message to the standard error file of the pro-
cess, 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 ofTcl_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, sincethe 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 procedures
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 displayed 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 argumentlist. The procedures panic and panicVA are synonyms (imple-
mented as macros) for Tcl_Panic and Tcl_PanicVA, respec-
tively. They exist to support old code; new code should usedirect calls to Tcl_Panic or Tcl_PanicVA.
Tcl Last change: 8.4 2Tcl Library Procedures Tcl_Panic(3TCL)
SEE ALSO
abort(3TCL), printf(3TCL), exec(1T), format(1T) KEYWORDS abort, fatal, errorATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:_______________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE|
|____________________|__________________|_
| Availability | runtime/tcl-8 |
|____________________|__________________|_
| Interface Stability| Uncommitted ||____________________|_________________|
NOTES Source for Tcl is available on http://opensolaris.org. Tcl Last change: 8.4 3