Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 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 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.

       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 suitable 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	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.

       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)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | SEE ALSO | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tcl_Panic.tcl85&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help