在 gdb 中,您可以通过抄送中断(暂停)程序并恢复。
你可以在 pdb 中做到这一点吗?
不,python2 的 pdb 不支持这一点,但您将此代码添加到程序中作为解决方法:
def debug_signal_handler(signal, frame):
import pdb
pdb.set_trace()
import signal
signal.signal(signal.SIGINT, debug_signal_handler)
相关问题:
根据这个错误报告,它可能会在 Python 3 中得到修复。
在 2.x 中,Ctrl-C 将抛出一个 KeyboardInterrupt,它通常不被程序处理,并将调试器置于“事后”模式。你不能从中断的地方继续。
我不知道是否有其他方法可以执行您所描述的操作。
根据 jwd 的回答中的预测,这现在似乎得到了支持。
在 Python 3.8 中,按下 Ctrl+C 会暂停执行,之后您可以单步执行代码并使用此处列出的命令向上/向下导航执行堆栈: