[Python-Dev] Set-next-statement in Python debuggers (original) (raw)
Michael Hudson mwh@python.net
11 Oct 2002 10:44:45 +0100
- Previous message: [Python-Dev] Set-next-statement in Python debuggers
- Next message: [Python-Dev] Set-next-statement in Python debuggers
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Richie Hindle <richie@entrian.com> writes:
Hi,
[Guido] > Python should not include features (like writable code object > attributes) that can cause crashes when used inexpertly. If I do implement this, I'll do it in such a way as to make crashes impossible (my first suggestion said that crashes would be possible, but I realise that was a mistake). It'll verify that the new value of flasti is a valid bytecode position, and it'll either fix up the stack/blockstack or refuse to move the position in ways that would affect them. (Armin, I guess that won't restrict you because you're doing this from C code?)
You can still cause crashes though: move f_lasti to point to a STORE_NAME (say) without first executing the corresponding LOAD_CONST (say).
Or just execute a LOAD_CONST over and over again until you fall off the end of the stack.
[Armin] > For safety I'd consider writing the > frame-object-modifying code in a C extension module, carefully > documented as "don't use this".
[Guido] > That's a reasonable solution: flasti should be read-only from Python > code, but you can write an extension that can write it. I'd like to see pure Python debuggers (including pdb) have this feature. If it's safe to use, might it still be considered for inclusion? (I can't guarantee I'll have the time to do it, but I'll try.) I'm also coming to realise that it's not flasti I really want to change, but flineno. The line number is the 'unit' that debuggers use - a debugger would set flineno, and flasti would be calculated and changed to the appropriate value. I don't think that changes any of the arguments either way, except maybe to distance the idea a little from what Armin is doing.
This is a good point! The scenarios I sketched above would be rather harder (impossible?) to contrive in this situation.
Cheers, M.
-- 112. Computer Science is embarrassed by the computer. -- Alan Perlis, http://www.cs.yale.edu/homes/perlis-alan/quotes.html
- Previous message: [Python-Dev] Set-next-statement in Python debuggers
- Next message: [Python-Dev] Set-next-statement in Python debuggers
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]