PETSc version 3.17.4
Fix/Edit manual page


Sets a routine to be called on detection of errors.


#include "petscsys.h" 
PetscErrorCode  PetscPushErrorHandler(PetscErrorCode (*handler)(MPI_Comm comm,int,const char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*),void *ctx)
Not Collective

Input Parameters

handler - error handler routine
ctx - optional handler context that contains information needed by the handler (for example file pointers for error messages etc.)

Calling sequence of handler

   int handler(MPI_Comm comm,int line,char *func,char *file,PetscErrorCode n,int p,char *mess,void *ctx);

comm - communicator over which error occurred
line - the line number of the error (indicated by __LINE__)
file - the file in which the error was detected (indicated by __FILE__)
n - the generic error number (see list defined in include/petscerror.h)
p - PETSC_ERROR_INITIAL if error just detected, otherwise PETSC_ERROR_REPEAT
mess - an error text string, usually just printed to the screen
ctx - the error handler context

Options Database Keys

-on_error_attach_debugger <noxterm,gdb or dbx> - starts up the debugger if an error occurs
-on_error_abort - aborts the program if an error occurs


The currently available PETSc error handlers include PetscTraceBackErrorHandler(), PetscAttachDebuggerErrorHandler(), PetscAbortErrorHandler(), and PetscMPIAbortErrorHandler(), PetscReturnErrorHandler().

Fortran Notes

You can only push one error handler from Fortran before poping it.

See Also

PetscPopErrorHandler(), PetscAttachDebuggerErrorHandler(), PetscAbortErrorHandler(), PetscTraceBackErrorHandler(), PetscPushSignalHandler()







Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages