Coverage Report

Created: 2025-07-04 06:49

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