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