是否有任何工具,库或框架来获取C程序的控制流程图,并找到程序可能采用的最差路径?
当我阅读与控制流图相关的其他问题时,我遇到了一些可以生成控制流图的工具.有没有办法用它们找到最坏的路径?
在llvm中,我知道已经构造了每个函数的CFG(控制流图),并且CFG由函数的基本块之间的关系表示.BUt我想遍历一个程序的全局CFG,其中包含llvm中的许多函数.如何获得一个程序的过程间CFG,然后对其进行数据流分析?
compiler-construction code-analysis static-analysis llvm control-flow-graph
有没有来自LLVM社区的人知道是否有办法为整个输入源代码生成CFG使用opt -dot-cfg foo.ll(.bc)?因为这个每个功能产生CFG,因此功能之间的连接将被忽略.
旧的分析工具似乎已经贬值了.
我可以将抽象语法树直接翻译成SSA格式,还是需要创建控制流图,然后从所述CFG创建静态单一分配表?
在控制流图的上下文中:我如何为类似c的程序表示这一点?我想我可以存储每个函数中所有基本块的CFG图,但是当我调用一个函数时,这可能会使事情复杂化.我能想到的另一种方法是整个程序的CFG,即所有源文件,但是我如何存储有关函数的信息?我可以在基本块(即父节点)中存储指向该函数的指针吗?
如果我从CFG生成SSA,我是否需要担心代表语句控制流的CFG?我想我只需要代表基本的块控制流程.
我想使用radare2 获得二进制文件(恶意软件)的完整控制流程图。
我从 SO 的另一个问题中关注了这篇文章。我想问是否ag有另一个命令可以提供整个二进制文件的控制流图,而不仅仅是一个函数的图。
我需要在项目中操作Java代码的控制流图.什么可能是一个很好的Java库来生成Java中的控制流图.到目前为止,我发现了一些eclipse插件(严重依赖于eclipse API)和独立工具(无法嵌入我的代码中).
我想分析一个OCaml/Reason代码库并理解各种函数之间的调用.有没有提供此类功能的工具?
我想转储给定 python 代码的控制流图,类似于 gcc 编译器选项给出的选项:用于 c 代码的 -fdump-tree-cfg 。
我成功获得了Python代码的AST(抽象语法树),但是从AST阶段获得控制流图似乎相当复杂和麻烦。
有没有更简单的方法来直接检索Python代码的控制流图?有什么建议么?
哦顺便说一下我正在使用 python3.5
谢谢你们!
PS我真的不知道我在幕后使用什么样的解释器,据我所知它是CPython(不确定),我不认为它是PyPy(Rpython)。有什么建议我如何验证吗?
int main() {
int i, grade = 0;
printf (" Enter points: \n");
scanf ("%d", &i);
if (i >= 50 && i <= 60) grade = 5;
else if (i > 50 && i <= 60) grade = 6;
else if (i > 60 && i <= 70) grade = 7;
else if (i > 70 && i <= 80) grade = 8;
else if (i > 80 && i <= 90) grade = 9;
else if (i > 90 …Run Code Online (Sandbox Code Playgroud) c ×3
llvm ×3
control-flow ×2
analysis ×1
call-graph ×1
clang ×1
compilation ×1
gcc ×1
graph ×1
java ×1
llvm-ir ×1
ocaml ×1
python ×1
radare2 ×1
reason ×1
ssa ×1
testing ×1
unit-testing ×1