Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_Panic (3tcl)

Name

Tcl_Panic - report fatal error and abort

Synopsis

#include <tcl.h>

void
Tcl_Panic(format, arg, arg, ...)

void
Tcl_PanicVA(format, argList)

void
Tcl_SetPanicProc(panicProc)

Description

Tcl_Panic(3tcl)             Tcl Library Procedures             Tcl_Panic(3tcl)



______________________________________________________________________________

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. On Windows,  when
       a  debugger  is  running,  the  formatted  error message is sent to the
       debugger in stead. 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  indi-
       cates 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 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.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       abort(3), printf(3), exec(n), format(n)

KEYWORDS
       abort, fatal, error



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   8.4                      Tcl_Panic(3tcl)