Understanding memory leak reports

Giampaolo Rodola' gnewsg at gmail.com
Fri Dec 21 13:44:23 EST 2007


Hi,
I'm in a big trouble since I don't know how to find some memory leaks
I just discovered in a program of mine.
By putting:

import gc
gc.set_debug(gc.DEBUG_LEAK)

..at the end of a script which imports a module I wrote it seems I
have some memory leaks scattered around.
The message printed on screen is the following:

gc: collectable <function 00C70E70>
gc: collectable <type 00B41018>
gc: collectable <dict 00C6DE40>
gc: collectable <tuple 00C09900>
gc: collectable <tuple 00BCD510>
gc: collectable <function 00C70EB0>
gc: collectable <function 00C70E30>

Since the main module is very big (more than 2800 lines of code) I do
not understand which objects are not garbage collected.
Is there a way to have a more detailed message to know which objects
are not garbage collected?
For example "function foo", "method MyClass.bar", "dict my_dict"...
"function 00C70E70" and "tuple 00C09900" are too much generic messages
which don't give me an idea about where the leak could be.



More information about the Python-list mailing list