@@ -30,6 +30,8 @@ name "_" holds a reference to the last result displayed!
3030Py_REF_DEBUG also checks after every decref to verify that the refcount hasn't
3131gone negative, and causes an immediate fatal error if it has.
3232
33+ Py_DEBUG implies Py_REF_DEBUG.
34+
3335Special gimmicks:
3436
3537sys.gettotalrefcount()
@@ -39,6 +41,8 @@ sys.gettotalrefcount()
3941Py_TRACE_REFS
4042-------------
4143
44+ Build option: ``./configure --with-trace-refs``.
45+
4246Turn on heavy reference debugging. This is major surgery. Every PyObject grows
4347two more pointers, to maintain a doubly-linked list of all live heap-allocated
4448objects. Most built-in type objects are not in this list, as they're statically
@@ -49,8 +53,6 @@ has been created.
4953Note that because the fundamental PyObject layout changes, Python modules
5054compiled with Py_TRACE_REFS are incompatible with modules compiled without it.
5155
52- Py_TRACE_REFS implies Py_REF_DEBUG.
53-
5456Special gimmicks:
5557
5658sys.getobjects(max[, type])
@@ -138,7 +140,8 @@ look at the object, you're likely to see that it's entirely filled with 0xDB
138140(meaning freed memory is getting used) or 0xCB (meaning uninitialized memory is
139141getting used).
140142
141- Note that PYMALLOC_DEBUG requires WITH_PYMALLOC.
143+ Note that PYMALLOC_DEBUG requires WITH_PYMALLOC. Py_DEBUG implies
144+ PYMALLOC_DEBUG (if WITH_PYMALLOC is enabled).
142145
143146Special gimmicks:
144147
@@ -156,7 +159,7 @@ Py_DEBUG
156159
157160This is what is generally meant by "a debug build" of Python.
158161
159- Py_DEBUG implies LLTRACE, Py_REF_DEBUG, Py_TRACE_REFS, and PYMALLOC_DEBUG (if
162+ Py_DEBUG implies LLTRACE, Py_REF_DEBUG, and PYMALLOC_DEBUG (if
160163WITH_PYMALLOC is enabled). In addition, C assert()s are enabled (via the C way:
161164by not defining NDEBUG), and some routines do additional sanity checks inside
162165"#ifdef Py_DEBUG" blocks.
@@ -223,3 +226,5 @@ the interpreter is doing are sprayed to stdout, such as every opcode and opcode
223226argument and values pushed onto and popped off the value stack.
224227
225228Not useful very often, but very useful when needed.
229+
230+ Py_DEBUG implies LLTRACE.
0 commit comments