Tcl_Panic(3)               Tcl Library Procedures               Tcl_Panic(3)
____________________________________________________________________________
NAME
       Tcl_Panic, Tcl_PanicVA, Tcl_SetPanicProc - report fatal error and
       abort
SYNOPSIS
       #include <tcl.h>       void       
Tcl_Panic(
format, 
arg, 
arg, 
...)
       void       
Tcl_PanicVA(
format, 
argList)
       void       
Tcl_SetPanicProc(
panicProc)
ARGUMENTS
       const 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 initialized
                                              using 
va_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 structures are in
       an inconsistent state, or that its C procedures 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 built-in Tcl command 
format.
       In a freshly loaded Tcl library, 
Tcl_Panic prints the formatted error
       message to the standard error file of the process, and then calls       
abort to terminate the process.  
Tcl_Panic does not return. On
       Windows, when a debugger is running, the formatted error message is
       sent to the debugger instead. If the windows executable does not have
       a stderr channel (e.g. 
wish.exe), then a system dialog box is used to
       display the panic message.       
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. 
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 suitable for the
       application or the platform.
       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 argument list.
SEE ALSO
       abort(3), 
printf(3), exec(n), format(n)
KEYWORDS
       abort, fatal, error
Tcl                                  8.4                        Tcl_Panic(3)