[Python-Dev] short-circuiting runtime errors/exceptions in python debugger.
steve at pearwood.info
Fri Oct 26 19:48:07 EDT 2018
On Fri, Oct 26, 2018 at 04:18:37PM -0700, Ed Peschko wrote:
> I was debugging a very long script that I was not all that familiar
> with, and I was doing my familiar routine of being very careful in
> evaluating expressions to make sure that I didn't hit such statements
> TypeError: unsupported operand type(s) for +: 'int' and 'str'
> anyways the script has a runtime of hours, so this was tedious work,
> and I hit one-too-many times where I missed a condition and had to
> start all over again.
Obviously you weren't careful enough :-)
You know you can set breakpoints in the debugger? You don't have to
single-step all the way through from the beginning. It isn't clear from
your post how experienced you are.
> So I was wondering if it would be possible to keep that context around
> if you are in the debugger and rewind the execution point to before
> the statement was triggered.
I think what you are looking for is a reverse debugger also known as
a time-travel debugger.
There's a Python implementation, but I've never used it:
> I can't emphasize exactly how much time and effort this would save.
That's what people say. But not everyone is a fan -- there are
apparently memory consumption and stability issues with reverse
debugging. There are people who love it, and those who don't.
> so - is this possible? just from my experiments it doesn't look so,
> but perhaps there is a trick out there that would give this
> if it isn't possible, how easy would it be to implement?
If it isn't possible, it would be very difficult to implement :-)
 A reverse debugger is not the process of adding bugs to code *wink*
More information about the Python-Dev