1
Vote

IronPython misses delivering line event for sys.settrace

description

t1.py:
def f(*args):
print args
return f
import sys
sys.settrace(f)
 
t2.py:
def f(): print 'hi'
 
"C:\Program Files (x86)\IronPython 2.7\ipy.exe" t1.py
prints:
(<frame object at 0x000000000000002B>, 'call', None)
(<frame object at 0x000000000000002B>, 'return', None)
 
C:\Python27\python.exe t1.py
prints:
(<frame object at 0x01D09EE8>, 'call', None)
(<frame object at 0x01D09EE8>, 'line', None)
(<frame object at 0x01D09EE8>, 'return', None)
 
C:\jython2.5.1\jython.bat t1.py
prints:
(<frame object at 0x1>, 'call', None)
(<frame object at 0x1>, 'line', None)
(<frame object at 0x1>, 'return', None)
 
PyPy is crazy, but delivers the line:
F:\PyPy-1.2\pypy.exe t1.py
(<frame object at 0x00000002>, 'call', None)
(<frame object at 0x00000002>, 'line', None)
(<frame object at 0x00000002>, 'return', None)
(<frame object at 0x00000006>, 'call', None)
(<frame object at 0x00000006>, 'line', None)
(<frame object at 0x00000006>, 'line', None)
(<frame object at 0x00000006>, 'return', None)
(<frame object at 0x0000000a>, 'call', None)
(<frame object at 0x0000000a>, 'line', None)
(<frame object at 0x0000000a>, 'line', None)
(<frame object at 0x0000000a>, 'return', True)

comments