to an ideyou might find the terminal-driven debugger to be bit bewildering at firstbut that will improve in time most of the python ides have excellent gui debuggersbut it is usually significant productivity gain to remain in ipython for your debugging table - ( )python debugger commands command action (elpdisplay command list help command show documentation for command (ontinueresume program execution (uitexit debugger without executing any more code (reaknumber set breakpoint at number in current file path/to/file py:number set breakpoint at line number in specified file (tepstep into function call (extexecute current line and advance to next line at current level (pd(ownmove up/down in function call stack (rgsshow arguments for current function debug statement invoke statement statement in new (recursivedebugger (iststatement show current position and context at current level of stack (hereprint full stack trace with context at current position other ways to make use of the debugger there are couple of other useful ways to invoke the debugger the first is by using special set_trace function (named after pdb set_trace)which is basically "poor man' breakpointhere are two small recipes you might want to put somewhere for your general use (potentially adding them to your ipython profile as do)def set_trace()from ipython core debugger import pdb pdb(color_scheme='linux'set_trace(sys _getframe(f_backdef debug( *args**kwargs)from ipython core debugger import pdb pdb pdb(color_scheme='linux'return pdb runcall( *args**kwargsthe first functionset_traceis very simple put set_trace(anywhere in your code that you want to stop and take look around (for exampleright before an exception occurs)in [ ]run ch /ipython_bug py /home/wesm/book_scripts/ch /ipython_bug py( )calling_things( set_trace(software development tools www it-ebooks info