This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author xdegaye
Recipients xdegaye
Date 2013-12-21.13:55:52
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1387634153.88.0.744375474198.issue20040@psf.upfronthosting.co.za>
In-reply-to
Content
The sys.settrace documentation states:
  The trace function is invoked (with event set to 'call') whenever a new local scope is entered;
  it should return a reference to a local trace function to be used that scope, or None if the scope shouldn’t be traced.

But when tracing a generator, 'line' events may be traced even though tracing has been disabled by
returning None at the 'call' event. Run the attached tracer.py with 0 as argument and see that
tracing does not stop as it should when count is 1:
$ python tracer.py 0
call gen with count 0
line
line
return
call gen with count 1
returning None: the scope shouldn’t be traced
line
return

However, when tracer.py is run with 1 as argument, tracing is (correctly) disabled when count is 1
and 2. This problem is closely related to issue 11992.
The dispatch_call() method of Bdb in the bdb module is broken when the frame is a generator and the
previous command is next, until or return (and when this problem is fixed).
History
Date User Action Args
2013-12-21 13:55:53xdegayesetrecipients: + xdegaye
2013-12-21 13:55:53xdegayesetmessageid: <1387634153.88.0.744375474198.issue20040@psf.upfronthosting.co.za>
2013-12-21 13:55:53xdegayelinkissue20040 messages
2013-12-21 13:55:52xdegayecreate