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