[Python-Dev] Interactive Debugging of Python

Mark Hammond MHammond at skippinet.com.au
Fri May 21 01:01:22 CEST 1999


> I'm writing a prototype of a stackless Python, which means that
> you will be able to access the current state of the interpreter
> completely.
> The inner interpreter loop will be isolated from the frame
> dispatcher. It will break whenever the ticker goes zero.
> If you set the ticker to one, you will be able to single
> step on every opcode, have the value stack, the frame chain,
> everything.

I think the main point is how to change code when a Python frame already
references it.  I dont think the structure of the frames is as important as
the general concept.  But while we were talking frame-fiddling it seemed a
good point to try and hijack it a little :-)

Would it be possible to recompile just a block of code (eg, just the
current function or method) and patch it back in such a way that the
current frame continues execution of the new code?

I feel this is somewhat related to the inability to change class
implementation for an existing instance.  I know there have been hacks
around this before but they arent completly reliable and IMO it would be
nice if the core Python made it easier to change already running code -
whether that code is in an existing stack frame, or just in an already
created instance, it is very difficult to do.

This has come to try and deflect some conversation away from changing
Python as such towards an attempt at enhancing its _environment_.  To
paraphrase many people before me, even if we completely froze the language
now there would still plenty of work ahead of us :-)

Mark.





More information about the Python-Dev mailing list