关于调试:在pdb中运行Python程序的中断(暂停)?

Interrupt (pause) running Python program in pdb?

在gdb中,可以通过c-c中断(暂停)程序并继续。

你能在PDB里做这个吗?


不,python2的pdb不支持此功能,但您可以将此代码作为解决方法添加到程序中:

1
2
3
4
5
def debug_signal_handler(signal, frame):
    import pdb
    pdb.set_trace()
import signal
signal.signal(signal.SIGINT, debug_signal_handler)

相关问题:

  • 显示正在运行的python应用程序的堆栈跟踪
  • 输入带终止信号的PDB


根据这个bug报告,可以在python 3中修复它。

在2.x中,ctrl-c将抛出一个键盘中断,该中断通常由程序处理,并将调试器置于"事后"模式。你不能继续你离开的地方。

我不知道还有没有其他方法可以做到你所描述的。