CHKMEMQ#

Checks the memory for corruption, calls error handler if any is detected

Synopsis#

#include <petscsys.h>
CHKMEMQ;

Not Collective

Notes#

We recommend using Valgrind https://petsc.org/release/faq/#valgrind or Compute Sanitizer https://developer.nvidia.com/compute-sanitizer on NVIDIA CUDA systems for finding memory problems. The CHKMEMQ macro is useful on systems that do not have valgrind, but is not as good as valgrind or compute-sanitizer.

Must run with the option -malloc_debug (-malloc_test in debug mode; or if PetscMallocSetDebug() called) to enable this option

Once the error handler is called the calling function is then returned from with the given error code.

By defaults prints location where memory that is corrupted was allocated.

Use CHKMEMA for functions that return void

See Also#

PetscTraceBackErrorHandler(), PetscPushErrorHandler(), PetscError(), SETERRQ(), PetscMallocValidate()

Level#

beginner

Location#

include/petscerror.h


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