[Python-Dev] Profiling of generators broken

Neil Schemenauer nas@python.ca
Tue, 4 Sep 2001 10:03:44 -0700


Here's a simple test:

    from __future__ import generators

    def test():
        yield 1
        yield 2

    import profile
    profile.run("list(test())")

It looks like the profile module is getting confused by functions that
get called once but return multiple times.  My proposed solution is to
modify ceval.c so that call_trace(..., PyTrace_CALL, ...) is called
when a generator is resumed rather then when it is created.  Sound
reasonable?

  Neil