mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues
This commit is contained in:
parent
69cf913ba1
commit
49526f48fc
24 changed files with 217 additions and 35 deletions
|
@ -642,7 +642,7 @@ Py_Finalize(void)
|
|||
#endif /* Py_TRACE_REFS */
|
||||
#ifdef PYMALLOC_DEBUG
|
||||
if (Py_GETENV("PYTHONMALLOCSTATS"))
|
||||
_PyObject_DebugMallocStats();
|
||||
_PyObject_DebugMallocStats(stderr);
|
||||
#endif
|
||||
|
||||
call_ll_exitfuncs();
|
||||
|
|
|
@ -997,6 +997,27 @@ a 11-tuple where the entries in the tuple are counts of:\n\
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
static PyObject *
|
||||
sys_debugmallocstats(PyObject *self, PyObject *args)
|
||||
{
|
||||
#ifdef WITH_PYMALLOC
|
||||
_PyObject_DebugMallocStats(stderr);
|
||||
fputc('\n', stderr);
|
||||
#endif
|
||||
_PyObject_DebugTypeStats(stderr);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
PyDoc_STRVAR(debugmallocstats_doc,
|
||||
"_debugmallocstats()\n\
|
||||
\n\
|
||||
Print summary info to stderr about the state of\n\
|
||||
pymalloc's structures.\n\
|
||||
\n\
|
||||
In Py_DEBUG mode, also perform some expensive internal consistency\n\
|
||||
checks.\n\
|
||||
");
|
||||
|
||||
#ifdef Py_TRACE_REFS
|
||||
/* Defined in objects.c because it uses static globals if that file */
|
||||
extern PyObject *_Py_GetObjects(PyObject *, PyObject *);
|
||||
|
@ -1093,6 +1114,8 @@ static PyMethodDef sys_methods[] = {
|
|||
{"settrace", sys_settrace, METH_O, settrace_doc},
|
||||
{"gettrace", sys_gettrace, METH_NOARGS, gettrace_doc},
|
||||
{"call_tracing", sys_call_tracing, METH_VARARGS, call_tracing_doc},
|
||||
{"_debugmallocstats", sys_debugmallocstats, METH_VARARGS,
|
||||
debugmallocstats_doc},
|
||||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue