In all honesty I rarely feel the need for anything more. Generally I don't even need the print() because I stick to small self contained functions.
The exception is when I'm using a poorly documented or new to me open source library. I guess at times like that a debugger may be useful. So next time I run into such a situation I'll try out a debugger.
But I can't see much of a reason for it in my own code.
In all honesty I rarely feel the need for anything more. Generally I don't even need the print() because I stick to small self contained functions.
The exception is when I'm using a poorly documented or new to me open source library. I guess at times like that a debugger may be useful. So next time I run into such a situation I'll try out a debugger.
But I can't see much of a reason for it in my own code.