LCOV - code coverage report
Current view: top level - Modules/clinic - _tracemalloc.c.h (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 28 30 93.3 %
Date: 2022-07-20 13:12:14 Functions: 9 9 100.0 %
Branches: 7 12 58.3 %

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

Generated by: LCOV version 1.14