# PetscStackPush
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 and verifies the memory is not corrupted. Not Collective


## Synopsis
```
#include <petscsys.h>
void PetscStackPush(char *funct)
```

## Input Parameter

- ***funct -*** the function name





## 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. It is recommended to use the debugger if extensive information is needed to
help debug the problem.

The default stack is a global variable called petscstack.


## See Also
 `PetscAttachDebugger()`, `PetscStackCopy()`, `PetscStackView()`, `PetscStackPopNoCheck()`, `PetscCall()`, `PetscFunctionBegin()`,
`PetscFunctionReturn()`, `PetscFunctionBeginHot()`, `PetscFunctionBeginUser()`, `PetscStackPushNoCheck()`, `PetscStackPop`

## Level
developer

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscerror.h.html#PetscStackPush">include/petscerror.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscerror.h)


[Index of all Sys routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
