首页 > 解决方案 > Python & clang:try...except 语句不适用于分段错误(核心转储)

问题描述

我在 Python 中使用 libclang 来构造一些源代码的 AST。少数文件发生segmentation fault(core dumped)错误。然后我在终端尝试命令clang -fmodules -fsyntax-only -Xclang -ast-dump + file。错误也会发生。我相信clang崩溃了。(我不知道为什么,如果你知道如何解决它,请告诉我)。因为只有少数文件会导致此错误。我想忽略它们并在 python 中使用 try...except 语句,但是这个语句不起作用,这个错误仍然发生并且代码运行中断直接而不是在except. 如何删除导致错误的源文件并继续为其他文件构建 AST?

标签: pythonsegmentation-faultclang

解决方案


segmentation fault (core dumped)意味着 python 解释器已完全停止(可能是因为 libclang 中的错误)。 try...except不会抓住这个。

最好的办法是为 libclang 创建一个错误报告,并附加一个导致错误的文件。

唯一的其他选择是在每个文件的单独进程中运行 libclang,如果进程终止,则忽略任何结果。


推荐阅读