classification
Title: frame.f_lineno doesn't get updated after local trace function assigned to it
Type: behavior Stage:
Components: Interpreter Core Versions: Python 3.2, Python 3.1, Python 3.0, Python 2.7, Python 2.6, Python 2.5, Python 2.4
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: eggy (1)
Priority: Keywords

Created on 2009-10-29 17:16 by eggy, last changed 2009-10-29 17:16 by eggy.

Files
File name Uploaded Description Edit Remove
tracer_testcase.py eggy, 2009-10-29 17:16
Messages (1)
msg94681 - (view) Author: Mark Florisson (eggy) Date: 2009-10-29 17:16
As you can see, when a local trace function sets f_lineno, f_lineno 
doesn't get updated on subsequent lines. Otherwise it works fine.
$ python tracer_testcase.py                                                                                                                      
12
12
12

13
14
15

The reference manual (for python 2.6) states the following: "f_lineno is 
the current line number of the frame — writing to this from within a 
trace function jumps to the given line (only for the bottom-most frame). 
A debugger can implement a Jump command (aka Set Next Statement) by 
writing to f_lineno.". This is contradictory with the shown results, 
because apparently it doesn't always represent the current line number.
History
Date User Action Args
2009-10-29 17:16:57eggycreate