Interrupt (pause) running Python program in pdb?
Question:
In gdb, you can interrupt(pause) the program by C-c and resume.
Can you do this in pdb?
Answers:
Based on this bug report it might be fixed in Python 3.
In 2.x Ctrl-C will throw a KeyboardInterrupt, which is typically unhandled by the program, and will put the debugger into ‘post-mortem’ mode. You cannot continue where you left off.
I don’t know if there’s some other way to do what you are describing.
No, python2’s pdb doesn’t support this, but you add this code to your program as a workaround:
def debug_signal_handler(signal, frame):
import pdb
pdb.set_trace()
import signal
signal.signal(signal.SIGINT, debug_signal_handler)
Related questions:
This now seems to be supported, based on what was predicted in jwd’s answer.
With Python 3.8, hitting Ctrl+C pauses execution, after which you can step through code & navigate up/down the execution stack using the commands listed here:
In gdb, you can interrupt(pause) the program by C-c and resume.
Can you do this in pdb?
Based on this bug report it might be fixed in Python 3.
In 2.x Ctrl-C will throw a KeyboardInterrupt, which is typically unhandled by the program, and will put the debugger into ‘post-mortem’ mode. You cannot continue where you left off.
I don’t know if there’s some other way to do what you are describing.
No, python2’s pdb doesn’t support this, but you add this code to your program as a workaround:
def debug_signal_handler(signal, frame):
import pdb
pdb.set_trace()
import signal
signal.signal(signal.SIGINT, debug_signal_handler)
Related questions:
This now seems to be supported, based on what was predicted in jwd’s answer.
With Python 3.8, hitting Ctrl+C pauses execution, after which you can step through code & navigate up/down the execution stack using the commands listed here: