Actual source code: errabort.c

petsc-3.13.6 2020-09-29
Report Typos and Errors

  2: /*
  3:        The default error handlers and code that allows one to change
  4:    error handlers.
  5: */
  6:  #include <petscsys.h>

  8: /*@C
  9:    PetscAbortErrorHandler - Error handler that calls abort on error.
 10:    This routine is very useful when running in the debugger, because the
 11:    user can look directly at the stack frames and the variables.

 13:    Not Collective

 15:    Input Parameters:
 16: +  comm - communicator over which error occurred
 17: .  line - the line number of the error (indicated by __LINE__)
 18: .  file - the file in which the error was detected (indicated by __FILE__)
 19: .  mess - an error text string, usually just printed to the screen
 20: .  n - the generic error number
 21: .  p - specific error number
 22: -  ctx - error handler context

 24:    Options Database Keys:
 25: +  -on_error_abort - Activates aborting when an error is encountered
 26: -  -start_in_debugger [noxterm,dbx,xxgdb]  [-display name] - Starts all
 27:     processes in the debugger and uses PetscAbortErrorHandler().  By default the
 28:     debugger is gdb; alternatives are dbx and xxgdb.

 30:    Level: developer

 32:    Notes:
 33:    Most users need not directly employ this routine and the other error
 34:    handlers, but can instead use the simplified interface SETERRQ, which
 35:    has the calling sequence
 36: $     SETERRQ(comm,number,mess)
 37:    or its variants, SETERRQ1(number,formatstring,arg1), SETERRQ2(), ... that
 38:    allow including arguments in the message.

 40:    Notes for experienced users:
 41:    Use PetscPushErrorHandler() to set the desired error handler.  The
 42:    currently available PETSc error handlers include PetscTraceBackErrorHandler(),
 43:    PetscAttachDebuggerErrorHandler(), and PetscAbortErrorHandler().


 46: .seealso: PetscPushErrorHandler(), PetscTraceBackErrorHandler(),
 47:           PetscAttachDebuggerErrorHandler()
 48: @*/
 49: PetscErrorCode  PetscAbortErrorHandler(MPI_Comm comm,int line,const char *fun,const char *file,PetscErrorCode n,PetscErrorType p,const char *mess,void *ctx)
 50: {
 52:   (*PetscErrorPrintf)("%s() line %d in %s %s\n",fun,line,file,mess);
 53:   abort();
 54:   return(0);
 55: }