[Python-Dev] Interactive Debugging of Python

Guido van Rossum guido at CNRI.Reston.VA.US
Fri May 21 05:02:49 CEST 1999


> Generally, I think we could make something very useful even with a number
> of limitations.  For example, I would find a first cut completely
> acceptable and a great improvement on today if:
> 
> * Only the function at the top of the stack can be recompiled and have the
> code reflected while executing.  This function also must be restarted after
> such an edit.  If the function uses global variables or makes calls that
> restarting will screw-up, then either a) make the code changes _before_
> doing this stuff, or b) live with it for now, and help us remove the
> limitation :-)

OK, restarting the function seems a reasonable compromise and would
seem relatively easy to implement.  Not *real* easy though: it turns
out that eval_code2() is called with a code object as argument, and
it's not entirely trivial to figure out the corresponding function
object from which to grab the new code object.  But it could be done
-- give it a try.  (Don't wait for me, I'm ducking for cover until at
least mid June.)

> Ironically, I turn this feature _off_ for Python extensions.  Although
> changing the C code is great, in 99% of the cases I also need to change
> some .py code, and as existing instances are affected I need to restart the
> app anyway - so I may as well do a normal build at that time.  ie, C now
> lets me debug incrementally, but a far more dynamic language prevents this
> feature being useful ;-)

I hear you.

> If we forced a restart would this be better?  Can we reliably reset the
> stack to the start of the current function?

Yes, no problem.

> If this would work for the few changed functions/methods, what would the
> impact be of doing it for _every_ function (changed or not)?  Then the
> analysis can drop to the module level which is much easier.  I dont think a
> slight performace hit is a problem at all when doing this stuff.

Yes, this would be fine too.

> >"What if Guido's brain exploded?" :-)
> 
> At least on that particular topic I didnt even consider I was the only one
> in fear of that!  But it is good to know that you specifically are too :-)

Have no fear.  I've learned to say no. :-)

--Guido van Rossum (home page: http://www.python.org/~guido/)




More information about the Python-Dev mailing list