123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #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 */
|