How to quit ipdb while in post-mortem debugging?
Use ctrl+z or open a second terminal, then look for the process (ps -ax | grep python
) and kill the process.
Step by Step:
Get access to a terminal:
- Option A: Press ctrl+z
- Option B: If you have access to a the Ubuntu GUI, open a second terminal (ctrl+alt+t)
- Option C: If you only have access to a command line, access a second tty (ctrl+alt+F2)
- Option D: If you are accessing a server through ssh, make a new connection from another terminal
ssh server
(use option B or C, so you can open a second connection to execute the command)
Look for the corresponding python
PID
of the processps -ax | grep python
. For example, the process id for my process (python my_stucked_process.py
) would be112923
:
3085 tty1 Sl+ 15:53 /usr/bin/python /usr/bin/x-terminal-emulator
112923 pts/2 Tl 0:01 python my_stucked_process.py
113118 pts/2 S+ 0:00 grep --color=auto python
- Kill the process
kill -9 112923
@tutuDajuju suggested using ctrl+z but their suggestion will only send the process to the background (it will still exists consuming memory). You need to do the abovein order to really kill the process
This was a bug in IPython 5.1. It was fixed in this pull request and is no longer an issue from IPython 5.2 and onwards. You can now use q
, quit()
, or Ctrl+d to exit the debugger.
As the user @ffeast commented, there is an open ipdb issue, and a few workarounds suggested. For me these worked well:
- press ctrl+z and
kill %1
(or whatever the Job number is) - execute
ipdb> import os; os._exit(1)