#include "Python.h" #include "pycore_tracemalloc.h" // _PyTraceMalloc_IsTracing #include "clinic/_tracemalloc.c.h" /*[clinic input] module _tracemalloc [clinic start generated code]*/ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=708a98302fc46e5f]*/ /*[clinic input] _tracemalloc.is_tracing Return True if the tracemalloc module is tracing Python memory allocations. [clinic start generated code]*/ static PyObject * _tracemalloc_is_tracing_impl(PyObject *module) /*[clinic end generated code: output=2d763b42601cd3ef input=af104b0a00192f63]*/ { … } /*[clinic input] _tracemalloc.clear_traces Clear traces of memory blocks allocated by Python. [clinic start generated code]*/ static PyObject * _tracemalloc_clear_traces_impl(PyObject *module) /*[clinic end generated code: output=a86080ee41b84197 input=0dab5b6c785183a5]*/ { … } /*[clinic input] _tracemalloc._get_traces Get traces of all memory blocks allocated by Python. Return a list of (size: int, traceback: tuple) tuples. traceback is a tuple of (filename: str, lineno: int) tuples. Return an empty list if the tracemalloc module is disabled. [clinic start generated code]*/ static PyObject * _tracemalloc__get_traces_impl(PyObject *module) /*[clinic end generated code: output=e9929876ced4b5cc input=6c7d2230b24255aa]*/ { … } /*[clinic input] _tracemalloc._get_object_traceback obj: object / Get the traceback where the Python object obj was allocated. Return a tuple of (filename: str, lineno: int) tuples. Return None if the tracemalloc module is disabled or did not trace the allocation of the object. [clinic start generated code]*/ static PyObject * _tracemalloc__get_object_traceback(PyObject *module, PyObject *obj) /*[clinic end generated code: output=41ee0553a658b0aa input=29495f1b21c53212]*/ { … } /*[clinic input] _tracemalloc.start nframe: int = 1 / Start tracing Python memory allocations. Also set the maximum number of frames stored in the traceback of a trace to nframe. [clinic start generated code]*/ static PyObject * _tracemalloc_start_impl(PyObject *module, int nframe) /*[clinic end generated code: output=caae05c23c159d3c input=40d849b5b29d1933]*/ { … } /*[clinic input] _tracemalloc.stop Stop tracing Python memory allocations. Also clear traces of memory blocks allocated by Python. [clinic start generated code]*/ static PyObject * _tracemalloc_stop_impl(PyObject *module) /*[clinic end generated code: output=c3c42ae03e3955cd input=7478f075e51dae18]*/ { … } /*[clinic input] _tracemalloc.get_traceback_limit Get the maximum number of frames stored in the traceback of a trace. By default, a trace of an allocated memory block only stores the most recent frame: the limit is 1. [clinic start generated code]*/ static PyObject * _tracemalloc_get_traceback_limit_impl(PyObject *module) /*[clinic end generated code: output=d556d9306ba95567 input=da3cd977fc68ae3b]*/ { … } /*[clinic input] _tracemalloc.get_tracemalloc_memory Get the memory usage in bytes of the tracemalloc module. This memory is used internally to trace memory allocations. [clinic start generated code]*/ static PyObject * _tracemalloc_get_tracemalloc_memory_impl(PyObject *module) /*[clinic end generated code: output=e3f14e280a55f5aa input=5d919c0f4d5132ad]*/ { … } /*[clinic input] _tracemalloc.get_traced_memory Get the current size and peak size of memory blocks traced by tracemalloc. Returns a tuple: (current: int, peak: int). [clinic start generated code]*/ static PyObject * _tracemalloc_get_traced_memory_impl(PyObject *module) /*[clinic end generated code: output=5b167189adb9e782 input=61ddb5478400ff66]*/ { … } /*[clinic input] _tracemalloc.reset_peak Set the peak size of memory blocks traced by tracemalloc to the current size. Do nothing if the tracemalloc module is not tracing memory allocations. [clinic start generated code]*/ static PyObject * _tracemalloc_reset_peak_impl(PyObject *module) /*[clinic end generated code: output=140c2870f691dbb2 input=18afd0635066e9ce]*/ { … } static PyMethodDef module_methods[] = …; PyDoc_STRVAR(module_doc, "Debug module to trace memory blocks allocated by Python."); static struct PyModuleDef module_def = …; PyMODINIT_FUNC PyInit__tracemalloc(void) { … }