gpt4 book ai didi

python - 在 Python 中随时进入解释器

转载 作者:太空狗 更新时间:2023-10-30 00:51:37 26 4
gpt4 key购买 nike

我知道如何使用 pdbIPython 进入解释器,但这需要我事先知道我想停止的确切位置。但是,我经常运行需要几分钟到几小时的数字运算脚本,我想知道它的确切进度。一种解决方案是简单地在各处放置大量日志记录语句,但我要么被太多信息淹没,要么无法准确记录我想知道的内容。

有没有办法初始化一个监听器循环,在某些组合键下,它会把我放到代码中,无论它当前在哪里?想想 CTRL+Z,但让我使用 Python 而不是 Bash。

最佳答案

您可以使用 signal module设置一个处理程序,当您点击 control-C 或 control-Z 或其他任何东西时将启动调试器.. SIGINTR,SIGSUSP。

例如,定义一个覆盖SIGQUIT的模块instant_debug.py

import signal
import pdb

def handler(signum, frame):
pdb.set_trace()

signal.signal(signal.SIGQUIT, handler)

然后写一个脚本

import instant_debug
import time

for i in xrange(1000000):
print i
time.sleep(0.1)

在执行期间的任何时候,您可以通过键入 CTRL+\ 跳转到代码,使用 ud 检查堆栈,如下所示正常的 pdb,然后继续 c,就好像什么都没发生过一样。请注意,您只会在下一个“原子”操作结束时跳入——这意味着不会在巨大的 C 模块中间停止。

关于python - 在 Python 中随时进入解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10255608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com