On Fri, Oct 26, 2018 at 04:18:37PM -0700, Ed Peschko wrote: > all, > > 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 > as: > > 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[1] also known as a time-travel debugger. https://softwareengineering.stackexchange.com/questions/181527/why-is-reverse-debugging-rarely-used There's a Python implementation, but I've never used it: https://morepypy.blogspot.com/2016/07/reverse-debugging-for-python.html [...] > 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 > functionality.. > > if it isn't possible, how easy would it be to implement? If it isn't possible, it would be very difficult to implement :-) [1] A reverse debugger is not the process of adding bugs to code *wink* -- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com