欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2015107049935
申请人: 上海斐讯数据通信技术有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-05-22
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.内存泄漏检查系统,其特征在于,包括内存数据采集模块、数据传输模块、内存泄漏分析模块和显示模块;所述内存数据采集模块运行于目标产品中,采集的数据通过所述数据传输模块传送至所述内存泄漏分析模块;所述内存数据采集模块采集的数据包括内存分配数据和内存释放数据;

所述内存数据采集模块包括内存分配数据采集单元和内存释放数据采集单元:

所述内存分配数据采集单元用于,在向目标应用程序分配内存前,记录所述目标应用程序所申请内存的内存块起始地址、内存块大小、内存块分配时间及调用内存分配函数的调用函数在所述目标应用程序中的位置;

所述内存释放数据采集单元用于,在目标应用程序释放内存前,记录所述目标应用程序将要释放内存的内存块起始地址、内存块大小、内存块释放时间及调用内存释放函数的调用函数在所述目标应用程序中的位置;

通过一个此自定义的模块提供的函数分配或者释放内存块,使用标准的内存分配malloc函数和内存释放free函数前,记录应用程序申请或者释放内存块的信息,包括内存块的起始地址、内存块的大小、内存块的分配时间或者释放时间,还记录辅助信息,包括分配或者释放函数调用在应用程序源代码中的位置,包括函数所在的文件、调用函数的名字、调用函数所在的行号;

在目标应用程序内存块申请的时候使用内存管理数据采集模块提供的内存分配和释放接口记录结构进行;

所述数据传输模块包括缓存,所述内存数据采集模块采集的内存分配数据和内存释放数据均存储在所述缓存中;

所述内存泄漏分析模块,所述内存泄漏分析模块运行于PC机中,适于预设内存块最大占用时间MAX_TIME,并适于根据所述内存数据采集模块采集的数据检查内存块是否发生泄漏,若同一地址的内存分配数据对应有内存释放数据,则所述地址的内存块未发生泄漏;若同一地址的内存分配数据无对应的内存释放数据,当所述地址的内存块占用时间小于所述最大占用时间MAX_TIME时,则所述地址的内存块未发生泄漏,当所述地址的内存块占用时间大于所述最大占用时间MAX_TIME时,则所述地址的内存块发生泄漏,具体过程如下:(1)在目标应用程序申请分配内存前,内存数据采集模块采集内存分配数据;在目标应用程序释放内存前,内存数据采集模块采集内存释放数据;

(2)将所述内存数据采集模块采集的数据传送至内存泄漏分析模块,所述数据以记录R的形式保存至所述内存泄漏分析模块的哈希表中;

(3)判断记录R的类型,若R的记录类型为“1”,则继续到下一步;若R的记录类型为“2”,则转至步骤(5);

(4)以R的start为关键字将内存分配数据以记录R1保存至哈希表T1;转至步骤(6);

(5)以R的start为关键字将内存释放数据以记录R2保存至哈希表T2;

(6)所述内存泄漏分析模块设置内存块最大占用时间MAX_TIME;

(7)从哈希表T1中获取内存分配记录R1;

(8)以R1的start为关键字从哈希表T2中获取内存释放记录R2;

(9)判断R2是否为有效记录,若R2为有效记录,则继续到下一步;若R2为无效记录,则转至步骤(11);

(10)R1记录的内存块未发生内存泄漏,删除T1中的R1和T2中的R2;

(11)判断R1记录的内存块的分配时间是否大于MAX_TIME,若R1记录的内存块的分配时间大于MAX_TIME,则继续到下一步;若R1记录的内存块的分配时间小于MAX_TIME,则转至步骤(10);

(12)R1记录的内存块发生内存泄漏,实时显示该内存泄漏结果;

其中,所述内存泄漏分析模块设置的内存块最大占用时间MAX_TIME≥5分钟;

所述记录R1中的数据包括目标应用程序所申请内存的内存块起始地址、内存块大小、内存块分配时间及调用内存分配函数的调用函数在所述目标应用程序中的位置,所述调用内存分配函数的调用函数在所述目标应用程序中的位置数据包括所述调用函数所在的文件、调用函数的名字和调用函数所在的行号;

所述记录R2中的数据包括目标应用程序将要释放内存的内存块起始地址、内存块大小、内存块释放时间及调用内存释放函数的调用函数在所述目标应用程序中的位置;所述调用内存释放函数的调用函数在所述目标应用程序中的位置数据包括所述调用函数所在的文件、调用函数的名字和调用函数所在的行号;

内存泄漏的检查结果传送至所述显示模块进行显示。

2.根据权利要求1所述的系统,其特征在于,所述内存泄漏分析模块包括哈希分配表,所述哈希分配表用于记录所述内存分配数据。

3.根据权利要求1所述的系统,其特征在于,所述内存泄漏分析模块包括哈希释放表,所述哈希释放表用于记录所述内存释放数据。