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 <rep...@bugs.python.org>
<http://bugs.python.org/issue19533>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to