mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00

* 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.
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
#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 */
|