python faulthandler,记录到文本文件和多实例

2024-05-29 03:00:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个PyQt应用程序,所以很有可能发生分段故障。在

我想使用faulthandler模块来捕获这些。现在,我不想写信给stderr,而是想做以下事情:

  • 使faulthandler写入具有已知位置的文件。在
  • 当再次启动时(正常情况下或崩溃后),请检查该文件是否存在并包含崩溃日志。在
  • 如果有,打开一个对话框,要求用户打开带有崩溃日志的bug报告,然后删除它。在

现在,除了运行应用程序的多个实例外,这一切都很好。在

然后我想我可以写一个随机文件,其中有一个已知的位置(比如,crash-XXXXX.log),然后在开始检查crash-*.log时,如果它不是空的,那么就执行上面的操作。在

然而,当这样做的时候,至少在Linux上,我可以在另一个实例仍然打开时删除该文件,然后如果该实例崩溃,日志就会丢失。在

我也不能只是在正确的时间open()文件,因为faulthandler需要一个打开的文件。在

我在寻找解决方案:

  • 适用于多个实例
  • 正确捕捉所有这些实例的崩溃
  • 当一个实例崩溃后启动一个新实例时,只打开一次“崩溃”对话框。在
  • 关闭所有实例后不会留下任何过时的文件。在
  • 至少可以在Linux和Windows上运行

我考虑过一些不同的方法,但是它们都有一个缺点。在


Tags: 模块文件实例log应用程序linuxstderrcrash

热门问题