[发明专利]数组越界错误的自动检测和校正方法有效
申请号: | 201410022323.0 | 申请日: | 2014-01-17 |
公开(公告)号: | CN103778061A | 公开(公告)日: | 2014-05-07 |
发明(设计)人: | 陈哲;李文明;黄志球 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 朱小兵;刘谦 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种数组越界错误的自动检测和校正方法,包括:选择待变换的源代码;利用编译器生成源代码的符号表和抽象语法树;遍历抽象语法树,构造指针依赖图,并进行源代码变换计算;在源代码中将需替换的部分源代码进行替换;将按照数组越界检测策略和校正策略生成的函数定义写入变换后源代码的开头部分;将变换后的源代码用原编译器进行编译;把生成的可执行文件部署到目标系统并运行,自动检测和校正数组越界错误,并准确报告错误对应的源代码位置。本发明提供的数组越界错误的自动检测和校正方法具有更准确的错误定位功能,更好的运行时效率和性能,更自动化的运行时错误校正功能。 | ||
搜索关键词: | 数组 越界 错误 自动检测 校正 方法 | ||
【主权项】:
一种数组越界错误的自动检测和校正方法,其特征在于,包括:步骤1、选择待变换的源代码项目目录,或者单个源代码文件;步骤2、针对待变换的源代码,利用编译器生成源代码的符号表和抽象语法树;步骤3、遍历抽象语法树中的所有结点,构造指针依赖图,并进行源代码变换计算,其中:所述指针依赖图是一个有向图二元组,所述有向图二元组包括源代码中的指针集合和源代码中的指针依赖关系集合,所述源代码中的指针集合构成指针依赖图中的结点集合,所述源代码中的指针依赖关系集合构成指针依赖图中的有向边集合;步骤4、根据步骤3的计算结果,在源代码中将需替换的部分源代码进行替换,生成变换后的源代码,并保存到新项目目录或新文件;步骤5、定义数组越界检测策略和校正策略,并将这些策略转化为函数__MNT_CHK_AAV的定义,将按照策略生成的函数__MNT_CHK_AAV的定义写入变换后源代码的开头部分;步骤6、将变换后的项目目录或文件用原编译器进行编译,生成目标系统上的可执行文件;步骤7、将生成的可执行文件部署到目标系统并运行,当可执行文件运行到已替换或插入的代码段时,将自动检测和校正数组越界错误,并准确报告错误对应的源代码位置。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410022323.0/,转载请声明来源钻瓜专利网。