【技术实现步骤摘要】
动态库的内存操作记录方法、装置、设备及存储介质
本申请实施例涉及计算机
,特别涉及一种动态库的内存操作记录方法、装置、计算机设备及存储介质。
技术介绍
在应用程序开发中,为了避免应用程序占用过多的内存资源而影响应用的正常运行,通常需要测试应用程序的内存占用。在相关技术中,应用程序的开发者可以通过应用程序开发工具中的内存分析功能来测试应用程序的内存占用情况。以开发手机应用为例,开发者在开发一个应用之后,将该应用在手机中运行,同时通过通用串行总线(UniversalSerialBus,USB)连接手机和电脑,并在电脑中启动应用程序开发工具中的内存分析功能,之后,应用程序开发工具可以连续获取手机在运行上述应用过程中实际使用的物理内存(ProportionalSetSize,PSS)。然而,相关技术所示的方案只能获取到应用运行过程中的实际使用的物理内存PSS,而PSS只能指示内存占用是否异常,无法辅助分析内存占用异常的原因,导致内存占用分析的效果较差。
技术实现思路
本申请实施例提供了一种动 ...
【技术保护点】
1.一种动态库的内存操作记录方法,其特征在于,所述方法由运行被测应用的计算机设备执行,所述方法包括:/n在被测应用运行过程中,响应于对内存操作函数的调用,获取调用的函数地址,以及本次的内存操作信息;/n通过所述函数地址获取本次发起调用所述内存操作函数的动态库的标识;/n将所述动态库的标识以及所述内存操作信息写入内存操作日志。/n
【技术特征摘要】
1.一种动态库的内存操作记录方法,其特征在于,所述方法由运行被测应用的计算机设备执行,所述方法包括:
在被测应用运行过程中,响应于对内存操作函数的调用,获取调用的函数地址,以及本次的内存操作信息;
通过所述函数地址获取本次发起调用所述内存操作函数的动态库的标识;
将所述动态库的标识以及所述内存操作信息写入内存操作日志。
2.根据权利要求1所述的方法,其特征在于,所述响应于对内存操作函数的调用,获取调用的函数地址,以及本次的内存操作信息,包括:
通过钩子函数拦截对所述内存操作函数的调用;
回溯所述内存操作函数的函数调用栈,得到所述函数地址;
执行对所述内存操作函数的调用,得到所述内存操作信息。
3.根据权利要求2所述的方法,其特征在于,所述回溯所述内存操作函数的函数调用栈,得到所述函数地址,包括:
通过展开操作进行堆栈回溯,将回溯得到所述函数调用栈保存为第一数组;
将所述第一数组中的元素提取为所述函数地址。
4.根据权利要求1所述的方法,其特征在于,所述通过所述函数地址获取本次发起调用所述内存操作函数的动态库的标识,包括:
通过调用地址符号获取函数,获得所述函数地址的符号信息;
从所述符号信息中获取所述动态库的标识。
5.根据权利要求4所述的方法,其特征在于,
所述通过调用地址符号获取函数,获得所述函数地址的符号信息,包括:
通过调用所述地址符号获取函数,将所述函数地址转化为指定数据结构;
将所述指定数据结构获取为所述符号信息;
所述从所述符号信息中获取所述动态库的标识,包括:
将所述指定数据结构中的目标字段提取为所述动态库的标识。
6.根据权利要求1所述的方法,其特征在于,所述内存操作信息包括内存大小、目标内存地址以及所述内存操作函数的标识;
所述将所述动态库的标识以及所述内存操作信息写入内存操作日志,包括:
将所述内存大小、所述目标内存地址、所述内存操作函数的标识以及所述动态库的标识存储为所述内存操作日志中的一条日志数据。
7.根据权利要求1所述的方法,其特征在于,所述将所述动态库的标识以及所述内存操作信息写入内存操作日志,包括:
响应于所述动态库是指定动态库,将所述动态库的标识以及所述内存操作信息写入所述内存操作日志。
8.根据权利要求7所述的方法,其特征...
【专利技术属性】
技术研发人员:叶前乾,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。