When I work with C#, I use a debugger all the time. Learning how to attach a debugger to a running process saves a lot of headaches in the long run.<p>On the other hand, when I work with Python, I rarely had to use a debugger. Python's grammar is so simple that simply <i>reading</i> through the code is usually enough to spot most errors.
Having been spoilt by the calibre of Microsoft debugging tools earlier on in my development career it's one of the very first things I get working when approaching new environments/languages. It's especially helpful when learning a language as experimentation is often a lot quicker than RTFM.
IF the problem lends itself to debugging then a hearty "YES!" is my answer. Eclipse/Java is my debugger of choice but there are also fine standalone debuggers like JSwat or even the command line debugger.
No, I wrote my own debugger.<p><a href="https://github.com/zv/zdb" rel="nofollow">https://github.com/zv/zdb</a><p>For "serious" stuff, I have a .gdbinit file that makes GDB <i>much</i> more usuable, check it out if you have time.<p><a href="https://raw.github.com/zv/dotfilez/master/gdbinit" rel="nofollow">https://raw.github.com/zv/dotfilez/master/gdbinit</a>
For me, TDD, a REPL and the occasional console print statement almost completely eliminates the need for a debugger. That being said, I probably fire it up every couple of months when working on a java or .net project. #java #scala #ruby #javascript #.net
Bpython has a nice wrapper for pdb: <a href="https://pypi.python.org/pypi/bpython/0.11" rel="nofollow">https://pypi.python.org/pypi/bpython/0.11</a><p>This is the nicest python debugger I've used.