mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 11:23:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2.1 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);
 | 
						|
 | 
						|
/* 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);
 | 
						|
 | 
						|
/* Return non-zero if tracemalloc is tracing */
 | 
						|
PyAPI_FUNC(int) _PyTraceMalloc_IsTracing(void);
 | 
						|
 | 
						|
/* Clear the tracemalloc traces */
 | 
						|
PyAPI_FUNC(void) _PyTraceMalloc_ClearTraces(void);
 | 
						|
 | 
						|
/* Clear the tracemalloc traces */
 | 
						|
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTraces(void);
 | 
						|
 | 
						|
/* Clear tracemalloc traceback for an object */
 | 
						|
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetObjectTraceback(PyObject *obj);
 | 
						|
 | 
						|
/* Initialize tracemalloc */
 | 
						|
PyAPI_FUNC(int) _PyTraceMalloc_Init(void);
 | 
						|
 | 
						|
/* Start tracemalloc */
 | 
						|
PyAPI_FUNC(int) _PyTraceMalloc_Start(int max_nframe);
 | 
						|
 | 
						|
/* Stop tracemalloc */
 | 
						|
PyAPI_FUNC(void) _PyTraceMalloc_Stop(void);
 | 
						|
 | 
						|
/* Get the tracemalloc traceback limit */
 | 
						|
PyAPI_FUNC(int) _PyTraceMalloc_GetTracebackLimit(void);
 | 
						|
 | 
						|
/* Get the memory usage of tracemalloc in bytes */
 | 
						|
PyAPI_FUNC(size_t) _PyTraceMalloc_GetMemory(void);
 | 
						|
 | 
						|
/* Get the current size and peak size of traced memory blocks as a 2-tuple */
 | 
						|
PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTracedMemory(void);
 | 
						|
 | 
						|
/* Set the peak size of traced memory blocks to the current size */
 | 
						|
PyAPI_FUNC(void) _PyTraceMalloc_ResetPeak(void);
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* !Py_TRACEMALLOC_H */
 |