In the Python debugger pdb, how do you exit interactive mode without terminating the debugging session

Sending an EOF by pressing Ctrl + D should work: $ python -m pdb myscript.py > …/myscript.py(1)<module>() -> import os (Pdb) import code (Pdb) code.interact() Python 2.7.11 (default, Dec 27 2015, 01:48:39) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type “help”, “copyright”, “credits” or “license” for more information. (InteractiveConsole) >>> <CTRL-D> (Pdb) c … Read more

Stepping into a function in IPython

ipdb has had support for runcall, runeval and run since 0.7, earlier this year. You can use it just like pdb.runcall: In [1]: def foo(a, b): …: print a + b …: In [2]: import ipdb In [3]: ipdb.runcall(foo, 1, 2) > <ipython-input-1-2e565fd9c4a4>(2)foo() 1 def foo(a, b): —-> 2 print a + b 3 ipdb>

Python-pdb skip code (as in “not execute”)

Use the j/jump command: test.py contains: def destroy_the_universe(): raise RuntimeError(“Armageddon”) def useful_line(): print(“Kittens-r-us”) print(10) import pdb; pdb.set_trace() destroy_the_universe() useful_line() Then: C:\Temp>c:\python34\python test.py 10 > c:\temp\test.py(9)<module>() -> destroy_the_universe() (Pdb) l 4 def useful_line(): 5 print(“Kittens-r-us”) 6 7 print(10) 8 import pdb; pdb.set_trace() 9 -> destroy_the_universe() 10 useful_line() [EOF] (Pdb) j 10 > c:\temp\test.py(10)<module>() -> useful_line() (Pdb) … Read more