Static Analysis 00 - Pointer Analysis
# 前言
;
# Fundations
# 术语
我们使用以下 domain 记号:
表示变量。
表示 field 。
表示对象,也表示 allocation sites 。
表示指针,对应 Java 中的引用。
定义指针的指向关系为一个映射 ,用 表示指针 所有可能指向的目标的集合,其中 表示 的幂集。
# 基本推导规则
我们使用如下的(类似于操作语义的)形式化规则来描述指针分析的推导规则,其中 premise 是:,亦可记为 。
四类语句的基本推导规则如下表所示:
语句类型 | 语句示例 | 推导规则 |
---|---|---|
new | x = new T(); | |
assign | x = y; | |
store | x.f = y; | |
load | y = x.f; |
# 指针流图
指针流图 (pointer flow graph, PFG)
# 过程内指针分析
- 01
- Reading Papers - Kernel Concurrency06-01
- 02
- Linux Kernel - Source Code Overview05-01
- 03
- Linux Kernel - Per-CPU Storage05-01