[发明专利]闭包对象的分析方法、装置、电子设备及计算机可读介质在审
申请号: | 202010824242.8 | 申请日: | 2020-08-17 |
公开(公告)号: | CN111782555A | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 陈灼林;骆归 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 王辉;阚梓瑄 |
地址: | 310052 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 分析 方法 装置 电子设备 计算机 可读 介质 | ||
本公开涉及一种闭包对象的分析方法、装置、电子设备及计算机可读介质,属于计算机技术领域。该方法包括:确定闭包对象的内存地址;解析闭包对象的内存布局结构,并根据闭包对象的内存地址和内存布局结构,确定闭包对象的闭包结构体中的外部对象描述变量;根据闭包结构体中的外部对象描述变量,确定闭包对象所引用外部对象的外部对象指针对应的内存地址偏移;根据外部对象指针对应的内存地址偏移确定闭包对象所引用的外部对象,以及外部对象的引用类型和对象描述信息。本公开通过分析闭包对象的内存布局结构,可以获取闭包对象所引用的外部对象信息,提升程序开发与调试的效率和准确率。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种闭包对象的分析方法、闭包对象的分析装置、电子设备及计算机可读介质。
背景技术
在iOS系统应用程序的开发和调试过程中,Objective-C闭包语法具有非常广泛的应用场景,例如,可以使用于处理业务回调、广播通知、简化代码结构等场景。
然而,在Objective-C闭包对象的使用过程中,容易出现因闭包对象内部强引用外部对象而导致的内存泄露问题,对应用程序的整体性能造成影响。
鉴于此,本领域亟需一种闭包对象的分析方法,能够获取闭包对象所引用的外部对象信息,提高应用程序的稳定性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种闭包对象的分析方法、闭包对象的分析装置、电子设备及计算机可读介质,进而至少在一定程度上提高应用程序的稳定性。
根据本公开的第一个方面,提供一种闭包对象的分析方法,包括:
确定闭包对象的内存地址;
解析所述闭包对象的内存布局结构,并根据所述闭包对象的内存地址和所述内存布局结构,确定所述闭包对象的闭包结构体中的外部对象描述变量;
根据所述闭包结构体中的外部对象描述变量,确定所述闭包对象所引用外部对象的外部对象指针对应的内存地址偏移;
根据所述外部对象指针对应的内存地址偏移确定所述闭包对象所引用的外部对象,以及所述外部对象的引用类型和对象描述信息。
在本公开的一种示例性实施例中,所述根据所述闭包对象的内存地址和所述内存布局结构,确定所述闭包对象的闭包结构体中的外部对象描述变量,包括:
通过所述闭包对象的内存布局结构获取所述闭包对象的对象描述标识;
根据所述闭包对象的内存地址确定所述闭包对象的闭包结构体中的第一结构体成员变量;
根据所述闭包对象的第一结构体成员变量和所述对象描述标识,确定所述闭包对象的闭包结构体中的第二结构体成员变量,其中,所述第二结构体成员变量中包括所述闭包对象的描述信息;
根据所述第二结构体成员变量得到所述闭包对象的闭包结构体中的外部对象描述变量。
在本公开的一种示例性实施例中,所述根据所述闭包对象的第一结构体成员变量和所述对象描述标识,确定所述闭包对象的闭包结构体中的第二结构体成员变量,包括:
根据所述对象描述标识判断所述闭包对象的闭包结构体中是否存在所述闭包对象的函数签名;
若所述闭包对象的闭包结构体中存在所述闭包对象的函数签名,则根据所述第一结构体成员变量和第一预设地址偏移确定所述第二结构体成员变量;
若所述闭包对象的闭包结构体中不存在所述闭包对象的函数签名,则根据所述第一结构体成员变量和第二预设地址偏移确定所述第二结构体成员变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010824242.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种能在栏杆上固定的辅助上楼梯行李箱
- 下一篇:一种便于移动的路面修补装置