Recently, I've been <a href="goog_1236623323311">rewriting the stock Python debugger</a> (or more precisely the pydb fork of that) from the ground up using some ideas and experience gained in working <a href="http://rubyforge.org/docman/?group_id=1900">ruby-debug</a>.<br>
<br>One comment sometimes heard with respect to debuggers is "Gee, I don't need a debugger because I write modular code and so I just go into a Python or the cooler IPython shell and enter from that what I need." I find this remark a little odd (the not needing a debugger part, not the coolness of the IPython part), because I don't see a good debugger as that much different from one of these shells. True, the automatic string evaluation in pdb and pydb of commands that aren't seen as debugger commands is a little lame compared to IPython, but to that end in the various debuggers I've tried to make more and more like a Python shell. (I write "Python" here rather than "IPython" because Python's an easier target to hit :-). So you can write things like:<br>
  (Pydbgr)  x = 5<br>  (Pydbgr)  list x+1  # Admittedly this is contrived<br><br>But perhaps I've not been going far enough. Although in pydb and pydbgr there are commands to go into Python or IPython, but maybe more should be done here. In ruby-debug right now there's a <a href="http://bashdb.sourceforge.net/ruby-debug.html#IDX105">setting</a> to <i>automatically</i> enter irb initially; the same could be done in <a href="http://code.google.com/p/pydbgr/">pydbgr</a> to enter python or ipython. So maybe what should be done is to add add debugger commands "step", "list", "continue" and so on into these invocations of these shells.<br>
<br>Thoughts on whether this would be a desirable? Or how easy or difficult would it be to do? <br><br>Finally, I should note that the rewrite allows for multiple command interfaces. So adding a python or ipython shell interface is not exclusive of say a gdb-style or <a href="http://www.xdebug.org/docs-dbgp.php">DBGp </a>interfaces.<br>
<br>