软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2020年第5期:面向顺序存储结构的数据流分析

发布日期:

作者:王淑栋,尹文静,董玉坤,张莉,刘浩

单位:王淑栋,中国石油大学(华东) 计算机科学与技术学院, 山东 青岛 26658011,尹文静,中国石油大学(华东) 计算机科学与技术学院, 山东 青岛 26658002,董玉坤,中国石油大学(华东) 计算机科学与技术学院, 山东 青岛 26658003,张莉,中国石油大学(华东) 计算机科学与技术学院, 山东 青岛 26658004,刘浩,中国石油大学(华东) 计算机科学与技术学院, 山东 青岛 26658005

关键词:顺序存储结构;数据流分析;抽象内存模型;过程间分析;内存泄漏

基金:中央高校基本科研业务费专项资金(19CX02028A);国家自然科学基金(61873281)

C程序中数组、malloc动态分配后的连续内存等顺序存储结构被大量使用,但大多数传统的数据流分析方法未能充分描述其结构及其上的操作,特别是在利用指针访问顺序存储结构时,传统的分析方法只关注了指针的指向关系,而未讨论指针可能发生偏移的数值信息,且未考虑发生偏移时可能存在越界的不安全问题,导致了对顺序存储结构分析不精确.针对以上不足,首先对顺序存储结构进行抽象建模,并对顺序存储结构与指针结合使用时的指向关系与偏移量进行有效表示,建立了用于顺序存储结构的抽象内存模型SeqMM;其次,归纳总结C程序中顺序存储结构涉及的指针相关迁移操作、谓词操作及遍历顺序存储结构的循环操作,提出了安全范围判别保证操作安全性;之后,针对函数调用时形参指针引用顺序存储结构与实参的映射过程进行过程间推导规则设计;最后,基于上述分析,提出了一种内存泄漏缺陷检测算法,对5个开源C工程的内存泄漏缺陷进行检测.实验结果表明,所提出的SeqMM能够有效地刻画C程序中的顺序存储结构及其涉及的各种操作,其数据流分析结果能够用于内存泄漏的检测工作,同时在效率和精度之间取得合理的权衡.

来源:2020年第5期

《软件学报》期刊编辑部

查看软件学报杂志2020年第5期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员