我在Python中使用libclang构造一些源代码的AST。少数文件发生segmentation fault(core dumped)
错误。然后,在终端clang -fmodules -fsyntax-only -Xclang -ast-dump + file
中尝试命令。错误也会发生。我相信叮当声崩溃了。 (我不知道为什么,如果您知道如何解决,请告诉我)。因为只有很少的文件导致此错误。我想忽略它们并在python中使用try ... except语句,但是此语句不起作用,仍然会发生此错误,并且代码直接运行中断而不是在except
中运行代码。如何删除导致错误的源文件并继续为其他文件构造AST?
最佳答案
segmentation fault (core dumped)
表示python解释器已完全停止(可能是因为libclang中的错误)。 try...except
不会抓住这个。
最好的选择是为libclang创建一个错误报告,并附加一个导致错误的文件。
唯一的其他选择是在每个文件的单独进程中运行libclang,如果进程终止,则忽略任何结果。