mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
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.
This commit is contained in:
parent
9e00e80e21
commit
6279c1c500
7 changed files with 54 additions and 37 deletions
42
Include/tracemalloc.h
Normal file
42
Include/tracemalloc.h
Normal file
|
@ -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 */
|
Loading…
Add table
Add a link
Reference in a new issue