28

在 gdb 中,您可以通过抄送中断(暂停)程序并恢复。

你可以在 pdb 中做到这一点吗?

4

3 回答 3

23

不,python2 的 pdb 不支持这一点,但您将此代码添加到程序中作为解决方法:

def debug_signal_handler(signal, frame):
    import pdb
    pdb.set_trace()
import signal
signal.signal(signal.SIGINT, debug_signal_handler)

相关问题:

于 2016-09-13T20:04:11.487 回答
8

根据这个错误报告,它可能会在 Python 3 中得到修复。

在 2.x 中,Ctrl-C 将抛出一个 KeyboardInterrupt,它通常不被程序处理,并将调试器置于“事后”模式。你不能从中断的地方继续。

我不知道是否有其他方法可以执行您所描述的操作。

于 2012-04-20T03:30:02.030 回答
0

根据 jwd 的回答中的预测,这现在似乎得到了支持。

在 Python 3.8 中,按下 Ctrl+C 会暂停执行,之后您可以单步执行代码并使用此处列出的命令向上/向下导航执行堆栈:

如何单步调试 Python 代码以帮助调试问题?

于 2021-11-29T11:13:22.003 回答