diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-10-25 13:54:13 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 13:54:13 (GMT) |
commit | 6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3 (patch) | |
tree | 69ba9fb9c2291b19241c700a4466c136c5aeda5b /Include/tracemalloc.h | |
parent | 9e00e80e213ebc37eff89ce72102c1f928ebc133 (diff) | |
download | cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.zip cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.tar.gz cpython-6279c1c5003cd94b5e04e568ce3df7c4e8f1eaa3.tar.bz2 |
bpo-35053: Add Include/tracemalloc.h (GH-10091)
* Modify object.h to ensure that pymem.h is included,
to get _Py_tracemalloc_config variable.
* Move _PyTraceMalloc_XXX() functions to tracemalloc.h,
they need PyObject type. Break circular dependency between pymem.h
and object.h.
Diffstat (limited to 'Include/tracemalloc.h')
-rw-r--r-- | Include/tracemalloc.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Include/tracemalloc.h b/Include/tracemalloc.h new file mode 100644 index 0000000..cf5bb54 --- /dev/null +++ b/Include/tracemalloc.h @@ -0,0 +1,42 @@ +#ifndef Py_TRACEMALLOC_H +#define Py_TRACEMALLOC_H + +#ifndef Py_LIMITED_API +/* Track an allocated memory block in the tracemalloc module. + Return 0 on success, return -1 on error (failed to allocate memory to store + the trace). + + Return -2 if tracemalloc is disabled. + + If memory block is already tracked, update the existing trace. */ +PyAPI_FUNC(int) PyTraceMalloc_Track( + unsigned int domain, + uintptr_t ptr, + size_t size); + +/* Update the Python traceback of an object. + This function can be used when a memory block is reused from a free list. */ +PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op); + +/* Untrack an allocated memory block in the tracemalloc module. + Do nothing if the block was not tracked. + + Return -2 if tracemalloc is disabled, otherwise return 0. */ +PyAPI_FUNC(int) PyTraceMalloc_Untrack( + unsigned int domain, + uintptr_t ptr); + +/* Get the traceback where a memory block was allocated. + + Return a tuple of (filename: str, lineno: int) tuples. + + Return None if the tracemalloc module is disabled or if the memory block + is not tracked by tracemalloc. + + Raise an exception and return NULL on error. */ +PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback( + unsigned int domain, + uintptr_t ptr); +#endif + +#endif /* !Py_TRACEMALLOC_H */ |