gpt4 book ai didi

python - 多线程 python 脚本静默死亡 - 如何调试

转载 作者:行者123 更新时间:2023-12-03 16:03:11 27 4
gpt4 key购买 nike

我有一个 python 脚本,它创建并启动 3 个线程,然后转到 KeyboardInterrupt-catch-loop,在按下 ctrl+c 时发送线程停止信号。

线程的 run 方法有一个顶级的 try-except 记录每个异常,创建线程的顶级代码也被包装到 try-except 以记录每个异常。

但是脚本只是随机死亡,有时在一天后,有时在一个小时后,没有任何异常被记录。

这让我发疯,因为我不知道如何调试它。

有什么想法吗?

编辑:
正如 Luper 建议的那样,查看 syslog 确实揭示了

python[27737]: segfault at 0 ip 0808e1d3 sp b662c5e0 error 4 in python2.5[8048000+fb000]

仍然不知道如何从这里出发。

至于代码,它没有做任何花哨的事情,一些文件解析和目录之间的复制,以及通过 os.system 调用一些可执行文件

最佳答案

python中的段错误通常是由用C编写的模块中的错误引起的。解释器无能为力。

快速搜索发现导致段错误的常见问题是 1)内存错误(但您应该会看到更多段错误 - 如果您怀疑这一点,请从 live CD 运行 memcheck),2)损坏的安装(尝试重新安装 python 和软件包,重新下载所有内容)和3)错误(duh)。

先试试是1)还是2),然后看进程停在哪里,可以用strace记录所有系统调用。这可能会给你一些关于正在发生的事情的其他线索(输出文件可能会变大):

strace -f python my_script.py > strace.out 2>&1

关于python - 多线程 python 脚本静默死亡 - 如何调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788964/

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