【技术实现步骤摘要】
程序的内存泄露检测方法、装置、电子设备及存储介质
[0001]本申请涉及计算机
,尤其涉及程序的内存泄露检测方法、装置、电子设备及存储介质。
技术介绍
[0002]随着高精地图等应用程序的应用功能越来越完善,程序逻辑也越来越复杂,程序所占用的内存也越来越大。因此,需要了解内存泄露情况来提升智能设备运行应用程序时的稳定性。
[0003]相关技术中,可以通过检测日志来定位内存泄露的位置,另一种方式是重现或回溯程序的运行过程,通过专业的工具来确定内存泄露的具体情况。
[0004]但是,由于日志的内容较多,检测过程不及时,而通过重现或回溯的方式并不是程序执行时的实时情况,检测结果不准确。
技术实现思路
[0005]为解决或部分解决相关技术中存在的问题,本申请提供一种智能设备的内存泄露检测方法、装置、电子设备及存储介质,该方法能够当程序执行时,及时检测出内存泄露的具体情况,保证检测结果准确性的同时降低检测成本。
[0006]本申请第一方面提供一种程序的内存泄露检测方法,包括:
[0 ...
【技术保护点】
【技术特征摘要】
1.一种程序的内存泄露检测方法,其特征在于,包括:当待测程序启动时,加载重载内存操作代码;所述重载内存操作代码通过对内存操作代码进行重载后得到,所述内存操作代码能够分配内存和释放内存;当执行所述内存操作代码分配内存时,基于所述重载内存操作代码记录所分配内存的内存占用信息到第一内存泄露表;所述内存占用信息至少包括内存地址以及调用所述待测程序的功能模块的模块名称;当执行所述内存操作代码释放内存时,基于所述重载内存操作代码删除所述第一内存泄露检测表中所释放内存的内存占用信息;当所述待测程序关闭时,基于第二内存泄露表展示内存泄露检测结果;其中,所述第二内存泄露表为所述待测程序关闭时的第一内存泄露表,所述内存泄露检测结果至少包括所述待测程序内存泄露的功能模块的模块名称以及各功能模块各自对应的内存泄露的次数;所述内存泄露的次数基于所述内存地址计算得到。2.根据权利要求1所述的方法,其特征在于,所述基于第二内存泄露表展示内存泄露检测结果,包括:基于内存地址偏移量以及基础地址将所述第二内存泄露表中的内存地址转换为源代码地址;依据所述源代码地址以及所述第二内存泄露表统计每一功能模块内存泄露的数量,得到统计结果;依据所述统计结果生成图表;所述图表至少包括功能模块的模块名称以及各功能模块各自对应的内存泄露次数;将所述图表进行展示。3.根据权利要求2所述的方法,其特征在于,依据所述统计结果生成图表,包括:基于所述统计结果查找各功能模块的功能类型;将属于同一功能类型的功能模块进行归类,得到归类结果;调用预设排序规则,依据预设排序规则对所述归类结果进行排序,得到排序结果;基于所述统计结果以及所述排序结果生成图表。4.根据权利要求2所述的方法,其特征在于,所述基于内存地址偏移量以及基础地址将所述第二内存泄露检测表中的内存地址转换为内存泄露的泄露信息,包括:调用动态库函数,得到初始化时的基础地址;调用指针函数,得到当前指令指针;基于所述基础地址以及所述当前指令指针得到动态库的内存地址偏移量;调用地址转换函数将所述内存地址偏移量转换为代码行号。5.根据权利要求1所述的方法,其特征在于,所述基于所...
【专利技术属性】
技术研发人员:王斌,贾郭峰,贾双成,朱磊,
申请(专利权)人:智道网联科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。