南大软分实验笔记|A5 非上下文敏感指针分析
💡
原文中文,约8800字,阅读约需21分钟。
📝
内容提要
这篇文章是南大软件分析课程的第五个作业,要求完成非上下文敏感的过程间指针分析。文章介绍了实验内容和算法实现的核心逻辑。同时提供了新增的分析规则和测试用例。作者总结称这门课程质量很高,之前的笔记和实验记录帮助他快速恢复函数执行现场,节省了不少时间。
🎯
关键要点
- 这是南大软件分析课程的第五个作业,要求完成非上下文敏感的过程间指针分析。
- 实验内容涉及静态字段、数组索引和静态方法调用的支持,采用访问者模式设计部分功能。
- 新增的分析规则包括对静态字段、数组索引和静态方法调用的处理。
- 实验中实现了AddReachable函数,遍历方法的所有语句。
- 核心逻辑实现代码位于StmtProcessor类中,处理不同类型的语句。
- 分析算法的主要部分是analyze函数,通过while循环处理工作列表。
- propagate函数用于计算差集,并更新指针流图。
- processCall函数实现了对方法调用的处理,更新可达性。
- 提供了一个本地测试用例,展示了程序分析的结果。
- 作者总结课程质量高,之前的笔记和实验记录帮助他快速恢复学习进度。
➡️