1 #ifndef Py_TRACEMALLOC_H
2 #define Py_TRACEMALLOC_H
3 
4 #ifndef Py_LIMITED_API
5 /* Track an allocated memory block in the tracemalloc module.
6    Return 0 on success, return -1 on error (failed to allocate memory to store
7    the trace).
8 
9    Return -2 if tracemalloc is disabled.
10 
11    If memory block is already tracked, update the existing trace. */
12 PyAPI_FUNC(int) PyTraceMalloc_Track(
13     unsigned int domain,
14     uintptr_t ptr,
15     size_t size);
16 
17 /* Untrack an allocated memory block in the tracemalloc module.
18    Do nothing if the block was not tracked.
19 
20    Return -2 if tracemalloc is disabled, otherwise return 0. */
21 PyAPI_FUNC(int) PyTraceMalloc_Untrack(
22     unsigned int domain,
23     uintptr_t ptr);
24 
25 /* Get the traceback where a memory block was allocated.
26 
27    Return a tuple of (filename: str, lineno: int) tuples.
28 
29    Return None if the tracemalloc module is disabled or if the memory block
30    is not tracked by tracemalloc.
31 
32    Raise an exception and return NULL on error. */
33 PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
34     unsigned int domain,
35     uintptr_t ptr);
36 #endif
37 
38 #endif /* !Py_TRACEMALLOC_H */
39