Skip to main content
`Ctrl`+`K`

# PetscStackPushNoCheck

Pushes a new function name and line number onto the PETSc default stack that tracks where the running program is currently in the source code.

## Synopsis

    #include <petscsys.h>
    void PetscStackPushNoCheck(char *funct,int petsc_routine,PetscBool hot);

Not Collective

## Input Parameters

- funct - the function name

- petsc_routine - 2 user function, 1 PETSc function, 0 some other function

- hot - indicates that the function may be called often so expensive error checking should be turned off inside the function

## Notes

In debug mode PETSc maintains a stack of the current function calls that can be used to help to quickly see where a problem has occurred, for example, when a signal is received without running in the debugger. It is recommended to use the debugger if extensive information is needed to help debug the problem.

This version does not check the memory corruption (an expensive operation), use `PetscStackPush()` to check the memory.

Use `PetscStackPushExternal()` for a function call that is about to be made to a non-PETSc or user function (such as BLAS etc).

The default stack is a global variable called `petscstack`.

## See Also

`PetscAttachDebugger()`, `PetscStackCopy()`, `PetscStackView()`, `PetscStackPopNoCheck()`, `PetscCall()`, `PetscFunctionBegin()`, `PetscFunctionReturn()`, `PetscFunctionBeginHot()`, `PetscFunctionBeginUser()`, `PetscStackPush()`, `PetscStackPop`, `PetscStackPushExternal()`

## Level

developer

## Location

include/petscerror.h

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