/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]*/ |