[发明专利]程序设计中内存操作错误的识别方法无效
申请号: | 98104528.6 | 申请日: | 1998-02-06 |
公开(公告)号: | CN1129070C | 公开(公告)日: | 2003-11-26 |
发明(设计)人: | 陈青;刘运渠;肖华熙;龙晶 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种识别程序设计中内存操作错误的方法,对源程序的插装是基于包含有指针句柄表和颜色表的插装库进行的,对语句中包含有动态内存、变量和字符串常量的内存块时,插入登记内存块的语句;对指针赋值语句,插入登记指针并建立与内存块间关系的语句;对数组和表达式语句,插入对数组及表达式进行检查的语句。利用该方法可有效地检测出内存操作有关的编程错误,提高测试效率和程序质量,降低测试方面的费用开销。 | ||
搜索关键词: | 程序设计 内存 操作 错误 识别 方法 | ||
【主权项】:
1.一种识别程序设计中的内存操作错误的方法,包括以下步骤:对源程序进行插装,编译并运行插装后的程序,从运行产生的错误日志取得出错信息,其特征在于,包括:A、在插装库中定义指针句柄表和颜色表,所述指针句柄表为每个指针项记录其指针标示和内存块句柄,所述颜色表为每一个内存块项记录内存块标示、属性和指向它的指针句柄;B、对源程序进行插装,包括:打开源程序,判定文件是否结束,如是结束插装流程,否则从源程序中读语句到缓冲区,对语句进行判断,并依判断结果插入不同的语句:当语句中包含有动态内存、变量和字符串常量的内存块时,插入登记内存块的语句;当语句中出现指针赋值语句时,插入登记指针并建立与内存块间关系的语句;当语句中出现有数组和表达式语句时,插入对数组及表达式进行检查的语句;C、运行插装后的被测程序,依插装库中定义的指针句柄表和颜色表检测出内存操作错误或指针操作错误,包括:当插装库收到对数组表达式的检查请求,进行数组地址及数组表达式地址赋值,以数组地址为关键字在颜色表中查找内存块项,如没有找到则记录错误信息;否则,依内存块属性判断数组表达式地址是否越界,如越界则记录错误信息,否则结束对该数组的检查;当插装库收到对指针表达式的检查请求,对指针地址及指针表达式地址赋值,以指针地址为关键字在指针句柄表中查找对应指针项,如没有找到则记录错误信息;否则,以找到的对应指针项作为内存块句柄,查找颜色表中对应的内存块项,如未找到内存块项,则记录错误信息,否则,依内存块属性判断指针表达式是否越界,如越界则记录错误信息,如未越界结束对该数组的检查。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/98104528.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种制备邻-、间-或对-氰基苯甲醛的方法
- 下一篇:标识符提供方法