静态分析笔记
DC888静态分析课程笔记和作业
hyl-ocean
github.com/hyl11
展开
-
静态单赋值(SSA)
数据流分析中存在的问题:每个节点需要保存一份x,y,z的值,即便节点2只和x有关。当节点1的转换函数更新y时,必须经过2才能够到达3,但是y的更新和2并没有关系。Def-use关系给定变量x,如果结点A可能改变x的值,结点B可能使用结点A改变后的x的值,则结点A和结点B存在Def-Use关系基于Def-Use的数据流分析:静态单赋值形式(SSA)定义:每个变量只会被赋值一次控制流汇合处无法确定变量是如何赋值的:引入函数Φ()SSA提供了Def-Use关系:原创 2020-12-20 20:05:04 · 2564 阅读 · 0 评论 -
静态分析技术-1 基本块与Control Flow Graph
一. CFG(Control Flow Graph)概览 CFG是一种编译过程中代码的表示形式,以图的形式表示代码的控制流信息。CFG通常面向机器语言构建,因为机器语言每条语句较为简单,其控制流绘制起来更为清晰,下图即为一个简单的控制流图示例(图片来自DCC888课件):可以简单的看到,控制流图的每个节点内部可能包含多个指令,这些指令顺序执行,当发生分支跳转时,就需要进入另外一个节点。二. 基本块与CFG的定义2.1 基本块基本块由一系列的语句组成,这些语句具有如下特点整个程序的在执行指令时原创 2020-11-28 11:02:23 · 3650 阅读 · 1 评论