我知道有ways to automatically generate a CFG (C ontrol F low G raph) from source code。但是,据我了解,这些方法为我提供了视觉图形-图像。我真的不能使用这样的图像进行任何计算。

因此,我的问题是:有没有一种方法可以自动从源代码生成CFG,以使源代码以某种可程序分析的数据结构或文件返回给我? (理想情况下,我也想访问CFG中每个节点/边缘的行号)

我将在使用这样的CFG提取控制流路径以确定输入路径覆盖范围的项目中使用此项目(我将使用trace解决)

重要的:我要分析的代码是用python编写的;我想用python进行分析

最佳答案

#include "llvm/Support/CFG.h"

   for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) {
     BasicBlock *OnePredecessor = *PI;
     ...
http://lists.cs.uiuc.edu/pipermail/llvmdev/2005-June/004416.html
这说明了如何以编程方式提取CFG,以及如何使用辅助工具将CFG打印到控制台。

关于python - 从源代码计算可摄取控制流程图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14226773/

10-12 17:01