我一直在使用 pycparser 开发一个 python 程序,该程序应该生成一个 JSON 文件,其中包含给定函数及其输出的依赖关系。对于示例函数:
int Test(int testInput)
{
int b = testInput;
return b;
}
在这里,我希望b依赖于testInput。但是,当然,结构和 if 语句等可能会变得更加复杂。我正在测试的文件还具有特定形式的函数,这些函数被视为输入和输出,如下所示:
int Test(int testInput)
{
int anotherInput = DatabaseRead(VariableInDatabase);
int b = testInput;
int c;
c = anotherInput + 1;
DatabaseWrite(c);
return b;
}
这里c将依赖于VariableInDatabase,b和以前一样。我在 pycparser 中进行了这种分析,因为大多数结构和指针对我来说真的很难处理,而且似乎有更好的方法。我已经阅读了 AST 和 CFG,以及其他分析工具,如 Frama-C,但如果这是一件事,我似乎无法找到明确的答案。
有没有一种已知的方法来进行这种分析,如果有,我应该研究什么?它应该包含数千个文件,并且能够将这些依赖项输出到 JSON 中,因此编辑器插件似乎不是我想要的。