1 周)它似乎只是停止响应事件。发生这种情况时,我只需按 ctrl-C 并重新运行,一切又好了。但是,这种情况不断发生有点-6ren">
gpt4 book ai didi

python - 调试一个类似 "hangs"的 python 应用程序

转载 作者:行者123 更新时间:2023-11-28 17:37:53 27 4
gpt4 key购买 nike

我有一个事件驱动的应用程序,是用 python 编写的。一段时间后(通常 > 1 周)它似乎只是停止响应事件。发生这种情况时,我只需按 ctrl-C 并重新运行,一切又好了。但是,这种情况不断发生有点烦人,我不知道是什么原因造成的。 有没有一种方法可以运行我的应用程序,当发生这种情况并且应用程序不再接受连接时,我可以进入调试器并查看它在做什么以及为什么它不接受连接?

我以前使用过pdb,但是我使用它的方式(if condition: pdb.set_trace())在这里并不适用,因为我不知道它在做什么在代码中失败时。我的理想情况是代替 Ctrl-C,也许我按了 Ctrl-somethingelse,这会导致它停止并进入调试器。这种事情容易做吗?

最佳答案

在您的案例中触发 pdb 可能并不简单。但是,每当我需要调试此类挂起时,我都会使用 dumpstacks() 检查进程中所有线程回溯的“快照”。功能。

您可以使用计时器定期调用它并将输出打印到日志文件,并在您注意到挂起时引用它,或者利用一些 RPC 机制(例如信号)在您的进程中触发函数调用要求。我通常做后者,因为我系统中的进程已经监听了这样的 RPC 请求(使用 rpyc)。

关于python - 调试一个类似 "hangs"的 python 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28637795/

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