82、程序分析与测试工具:从重叠数据结构到 C++ 符号执行

程序分析与测试工具:从重叠数据结构到 C++ 符号执行

1. 重叠数据结构的程序分析

在程序分析领域,对于重叠数据结构的分析是一项重要任务。研究人员实现了基于 RHS 算法的过程间分析版本,并将其应用于验证两类程序的内存安全性。

1.1 实验程序集

实验使用的基准程序集包含以下几种类型的程序:
- list - dio :是 deadline IO 调度器的抽象版本,使用两个双向链表而非列表和树。sim 版本跳过了旧分析无法验证的请求移动例程。
- many - keys :具有按不同键排序的双向链表的重叠数据结构,链表数量在文件名中注明。
- many - lists :使用不同字段实现的多个双向链表,这些链表不共享节点,分析可分别处理每个链表。
- cache :有一个双向链表和指向最近访问的列表单元格的指针,可分别分析列表和指针。
- block/deadline - iosched.c :具有双向链表和红黑树的重叠数据结构来维护请求列表,原始源代码进行了修改以适应分析。

1.2 实验结果

实验结果表明,当前实现比 2008 年的旧分析性能更好,尤其是在程序变得更大或更复杂时,性能提升更为显著。部分程序旧分析根本无法处理。具体实验数据如下表所示:
| 文件名 | 代码行数 | 旧分析时间 (秒) | 新分析时间 (秒) | 加速比 | 插入的 transi_j(e) 数量 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值