Good morning, I read about a "time machine" debugger a long time ago. The debugger would collect all the information of all the calls and the programmer can just execute the code without breakpoints. Later, the programmer can follow the evolution of a variable until it reaches an erroneous value. I've never worked with that and it sounds really memory intensive, but the examples were quite interesting. When you are in a loop, you want to break at a certain iteration. When you are in a recursive function, you want to stop at the right point. etc. Cheers, Hans On 03/10/18 16:51, Jonathan Fine wrote:
This thread is about debugging. I suggest we start by collecting problems and possible solutions. And that after about a week of that, we start discussing what we've gathered.
We already have a problem and possible solution, provided by Eric Smith and Larry Hastings.
<begin> TITLE: f-string "debug" conversion URL: https://mail.python.org/pipermail/python-ideas/2018-October/053956.html PROBLEM Writing print('value = ', value) is tedious, particularly for more complicated expressions, such as print('big_array[5:20] =', big_array[5:20])
POSSIBLE SOLUTION
For f-strings, we add a !d conversion operator, which produces the text of an expression followed by its value. Thus, the two previous examples can be written more concisely as print(f'{value !d}') print(f'{big_array[5:20] !d}') </end>
I suggest for the moment that we just gather problem-solution pairs, much as above. I think they'll be between 5 and 15 such pairs. I'll post one to the current discussion thread in an hour or so.
And that after about a week, we move to discussing what we have. Finally, many thanks to Eric and Larry for their useful contribution to the important problem of debugging.