все Python 3gcфункция
gc.set_debug()
отладка
Включает отладочные флаги сборщика (DEBUG_STATS, DEBUG_SAVEALL, DEBUG_LEAK…); вывод идёт в sys.stderr.
Синтаксис
gc.set_debug(flags)
Флаги не добавляются, а заменяют прежние целиком: чтобы добавить, пишут set_debug(get_debug() | flag), чтобы выключить — set_debug(0). DEBUG_SAVEALL (и DEBUG_LEAK, который его включает) складывает всё собранное в gc.garbage вместо освобождения — это утечка по замыслу, после отладки флаг снимают и gc.garbage очищают.
Примеры
import gc
class Node:
pass
gc.set_debug(gc.DEBUG_SAVEALL)
n = Node()
n.me = n
del n
gc.collect()
print([type(o).__name__ for o in gc.garbage if isinstance(o, Node)]) # → ['Node']
gc.set_debug(0)
gc.garbage.clear()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности