[issue19533] Unloading docstrings from memory if -OO is given

Stefan Krah report at bugs.python.org
Sun Nov 10 15:19:40 CET 2013


Stefan Krah added the comment:

It looks like the memory management is based directly on Py_Arenas:

def f():
    """squeamish ossifrage"""
    pass

Breakpoint 1, PyArena_Free (arena=0x9a5120) at Python/pyarena.c:159
159         assert(arena);
(gdb) p arena->a_objects
$1 = ['f', 'squeamish ossifrage']
(gdb) bt
#0  PyArena_Free (arena=0x9a5120) at Python/pyarena.c:159
#1  0x0000000000425af5 in PyRun_FileExFlags (fp=0xa1b780, filename_str=0x7ffff7f37eb0 "docstr.py", start=257, globals=
    {'f': <function at remote 0x7ffff7f04058>, '__builtins__': <module at remote 0x7ffff7f6a358>, '__name__': '__main__', '__file__': 'docstr.py', '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='docstr.py') at remote 0x7ffff7ede608>, '__cached__': None, '__doc__': None}, locals=
    {'f': <function at remote 0x7ffff7f04058>, '__builtins__': <module at remote 0x7ffff7f6a358>, '__name__': '__main__', '__file__': 'docstr.py', '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='docstr.py') at remote 0x7ffff7ede608>, '__cached__': None, '__doc__': None}, closeit=1, flags=0x7fffffffe490) at Python/pythonrun.c:2114
#2  0x0000000000423a0c in PyRun_SimpleFileExFlags (fp=0xa1b780, filename=0x7ffff7f37eb0 "docstr.py", closeit=1, flags=
    0x7fffffffe490) at Python/pythonrun.c:1589
#3  0x000000000042289c in PyRun_AnyFileExFlags (fp=0xa1b780, filename=0x7ffff7f37eb0 "docstr.py", closeit=1, flags=0x7fffffffe490)
    at Python/pythonrun.c:1276
#4  0x000000000043bc83 in run_file (fp=0xa1b780, filename=0x9669b0 L"docstr.py", p_cf=0x7fffffffe490) at Modules/main.c:336
#5  0x000000000043c8c5 in Py_Main (argc=3, argv=0x964020) at Modules/main.c:780
#6  0x000000000041cdb5 in main (argc=3, argv=0x7fffffffe688) at ./Modules/python.c:69

So the string 'squeamish ossifrage' is still in arena->a_objects right until
end of PyRun_FileExFlags(), even with -OO.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue19533>
_______________________________________


More information about the Python-bugs-list mailing list