(root)/
Python-3.12.0/
Modules/
clinic/
_tracemalloc.c.h
       1  /*[clinic input]
       2  preserve
       3  [clinic start generated code]*/
       4  
       5  #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
       6  #  include "pycore_gc.h"            // PyGC_Head
       7  #  include "pycore_runtime.h"       // _Py_ID()
       8  #endif
       9  
      10  
      11  PyDoc_STRVAR(_tracemalloc_is_tracing__doc__,
      12  "is_tracing($module, /)\n"
      13  "--\n"
      14  "\n"
      15  "Return True if the tracemalloc module is tracing Python memory allocations.");
      16  
      17  #define _TRACEMALLOC_IS_TRACING_METHODDEF    \
      18      {"is_tracing", (PyCFunction)_tracemalloc_is_tracing, METH_NOARGS, _tracemalloc_is_tracing__doc__},
      19  
      20  static PyObject *
      21  _tracemalloc_is_tracing_impl(PyObject *module);
      22  
      23  static PyObject *
      24  _tracemalloc_is_tracing(PyObject *module, PyObject *Py_UNUSED(ignored))
      25  {
      26      return _tracemalloc_is_tracing_impl(module);
      27  }
      28  
      29  PyDoc_STRVAR(_tracemalloc_clear_traces__doc__,
      30  "clear_traces($module, /)\n"
      31  "--\n"
      32  "\n"
      33  "Clear traces of memory blocks allocated by Python.");
      34  
      35  #define _TRACEMALLOC_CLEAR_TRACES_METHODDEF    \
      36      {"clear_traces", (PyCFunction)_tracemalloc_clear_traces, METH_NOARGS, _tracemalloc_clear_traces__doc__},
      37  
      38  static PyObject *
      39  _tracemalloc_clear_traces_impl(PyObject *module);
      40  
      41  static PyObject *
      42  _tracemalloc_clear_traces(PyObject *module, PyObject *Py_UNUSED(ignored))
      43  {
      44      return _tracemalloc_clear_traces_impl(module);
      45  }
      46  
      47  PyDoc_STRVAR(_tracemalloc__get_traces__doc__,
      48  "_get_traces($module, /)\n"
      49  "--\n"
      50  "\n"
      51  "Get traces of all memory blocks allocated by Python.\n"
      52  "\n"
      53  "Return a list of (size: int, traceback: tuple) tuples.\n"
      54  "traceback is a tuple of (filename: str, lineno: int) tuples.\n"
      55  "\n"
      56  "Return an empty list if the tracemalloc module is disabled.");
      57  
      58  #define _TRACEMALLOC__GET_TRACES_METHODDEF    \
      59      {"_get_traces", (PyCFunction)_tracemalloc__get_traces, METH_NOARGS, _tracemalloc__get_traces__doc__},
      60  
      61  static PyObject *
      62  _tracemalloc__get_traces_impl(PyObject *module);
      63  
      64  static PyObject *
      65  _tracemalloc__get_traces(PyObject *module, PyObject *Py_UNUSED(ignored))
      66  {
      67      return _tracemalloc__get_traces_impl(module);
      68  }
      69  
      70  PyDoc_STRVAR(_tracemalloc__get_object_traceback__doc__,
      71  "_get_object_traceback($module, obj, /)\n"
      72  "--\n"
      73  "\n"
      74  "Get the traceback where the Python object obj was allocated.\n"
      75  "\n"
      76  "Return a tuple of (filename: str, lineno: int) tuples.\n"
      77  "Return None if the tracemalloc module is disabled or did not\n"
      78  "trace the allocation of the object.");
      79  
      80  #define _TRACEMALLOC__GET_OBJECT_TRACEBACK_METHODDEF    \
      81      {"_get_object_traceback", (PyCFunction)_tracemalloc__get_object_traceback, METH_O, _tracemalloc__get_object_traceback__doc__},
      82  
      83  PyDoc_STRVAR(_tracemalloc_start__doc__,
      84  "start($module, nframe=1, /)\n"
      85  "--\n"
      86  "\n"
      87  "Start tracing Python memory allocations.\n"
      88  "\n"
      89  "Also set the maximum number of frames stored in the traceback of a\n"
      90  "trace to nframe.");
      91  
      92  #define _TRACEMALLOC_START_METHODDEF    \
      93      {"start", _PyCFunction_CAST(_tracemalloc_start), METH_FASTCALL, _tracemalloc_start__doc__},
      94  
      95  static PyObject *
      96  _tracemalloc_start_impl(PyObject *module, int nframe);
      97  
      98  static PyObject *
      99  _tracemalloc_start(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
     100  {
     101      PyObject *return_value = NULL;
     102      int nframe = 1;
     103  
     104      if (!_PyArg_CheckPositional("start", nargs, 0, 1)) {
     105          goto exit;
     106      }
     107      if (nargs < 1) {
     108          goto skip_optional;
     109      }
     110      nframe = _PyLong_AsInt(args[0]);
     111      if (nframe == -1 && PyErr_Occurred()) {
     112          goto exit;
     113      }
     114  skip_optional:
     115      return_value = _tracemalloc_start_impl(module, nframe);
     116  
     117  exit:
     118      return return_value;
     119  }
     120  
     121  PyDoc_STRVAR(_tracemalloc_stop__doc__,
     122  "stop($module, /)\n"
     123  "--\n"
     124  "\n"
     125  "Stop tracing Python memory allocations.\n"
     126  "\n"
     127  "Also clear traces of memory blocks allocated by Python.");
     128  
     129  #define _TRACEMALLOC_STOP_METHODDEF    \
     130      {"stop", (PyCFunction)_tracemalloc_stop, METH_NOARGS, _tracemalloc_stop__doc__},
     131  
     132  static PyObject *
     133  _tracemalloc_stop_impl(PyObject *module);
     134  
     135  static PyObject *
     136  _tracemalloc_stop(PyObject *module, PyObject *Py_UNUSED(ignored))
     137  {
     138      return _tracemalloc_stop_impl(module);
     139  }
     140  
     141  PyDoc_STRVAR(_tracemalloc_get_traceback_limit__doc__,
     142  "get_traceback_limit($module, /)\n"
     143  "--\n"
     144  "\n"
     145  "Get the maximum number of frames stored in the traceback of a trace.\n"
     146  "\n"
     147  "By default, a trace of an allocated memory block only stores\n"
     148  "the most recent frame: the limit is 1.");
     149  
     150  #define _TRACEMALLOC_GET_TRACEBACK_LIMIT_METHODDEF    \
     151      {"get_traceback_limit", (PyCFunction)_tracemalloc_get_traceback_limit, METH_NOARGS, _tracemalloc_get_traceback_limit__doc__},
     152  
     153  static PyObject *
     154  _tracemalloc_get_traceback_limit_impl(PyObject *module);
     155  
     156  static PyObject *
     157  _tracemalloc_get_traceback_limit(PyObject *module, PyObject *Py_UNUSED(ignored))
     158  {
     159      return _tracemalloc_get_traceback_limit_impl(module);
     160  }
     161  
     162  PyDoc_STRVAR(_tracemalloc_get_tracemalloc_memory__doc__,
     163  "get_tracemalloc_memory($module, /)\n"
     164  "--\n"
     165  "\n"
     166  "Get the memory usage in bytes of the tracemalloc module.\n"
     167  "\n"
     168  "This memory is used internally to trace memory allocations.");
     169  
     170  #define _TRACEMALLOC_GET_TRACEMALLOC_MEMORY_METHODDEF    \
     171      {"get_tracemalloc_memory", (PyCFunction)_tracemalloc_get_tracemalloc_memory, METH_NOARGS, _tracemalloc_get_tracemalloc_memory__doc__},
     172  
     173  static PyObject *
     174  _tracemalloc_get_tracemalloc_memory_impl(PyObject *module);
     175  
     176  static PyObject *
     177  _tracemalloc_get_tracemalloc_memory(PyObject *module, PyObject *Py_UNUSED(ignored))
     178  {
     179      return _tracemalloc_get_tracemalloc_memory_impl(module);
     180  }
     181  
     182  PyDoc_STRVAR(_tracemalloc_get_traced_memory__doc__,
     183  "get_traced_memory($module, /)\n"
     184  "--\n"
     185  "\n"
     186  "Get the current size and peak size of memory blocks traced by tracemalloc.\n"
     187  "\n"
     188  "Returns a tuple: (current: int, peak: int).");
     189  
     190  #define _TRACEMALLOC_GET_TRACED_MEMORY_METHODDEF    \
     191      {"get_traced_memory", (PyCFunction)_tracemalloc_get_traced_memory, METH_NOARGS, _tracemalloc_get_traced_memory__doc__},
     192  
     193  static PyObject *
     194  _tracemalloc_get_traced_memory_impl(PyObject *module);
     195  
     196  static PyObject *
     197  _tracemalloc_get_traced_memory(PyObject *module, PyObject *Py_UNUSED(ignored))
     198  {
     199      return _tracemalloc_get_traced_memory_impl(module);
     200  }
     201  
     202  PyDoc_STRVAR(_tracemalloc_reset_peak__doc__,
     203  "reset_peak($module, /)\n"
     204  "--\n"
     205  "\n"
     206  "Set the peak size of memory blocks traced by tracemalloc to the current size.\n"
     207  "\n"
     208  "Do nothing if the tracemalloc module is not tracing memory allocations.");
     209  
     210  #define _TRACEMALLOC_RESET_PEAK_METHODDEF    \
     211      {"reset_peak", (PyCFunction)_tracemalloc_reset_peak, METH_NOARGS, _tracemalloc_reset_peak__doc__},
     212  
     213  static PyObject *
     214  _tracemalloc_reset_peak_impl(PyObject *module);
     215  
     216  static PyObject *
     217  _tracemalloc_reset_peak(PyObject *module, PyObject *Py_UNUSED(ignored))
     218  {
     219      return _tracemalloc_reset_peak_impl(module);
     220  }
     221  /*[clinic end generated code: output=44e3f8553aae2535 input=a9049054013a1b77]*/