Recently, I&#39;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 &quot;Gee, I don&#39;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.&quot; I find this remark a little odd (the not needing a debugger part, not the coolness of the IPython part), because I don&#39;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&#39;t seen as debugger commands is a little lame compared to IPython, but to that end in the various debuggers I&#39;ve tried to make more and more like a Python shell. (I write &quot;Python&quot; here rather than &quot;IPython&quot; because Python&#39;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&#39;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&#39;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 &quot;step&quot;, &quot;list&quot;, &quot;continue&quot; 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>