[发明专利]一种代码处理方法、装置、电子设备及存储介质在审
申请号: | 202110057540.3 | 申请日: | 2021-01-15 |
公开(公告)号: | CN112667245A | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 夏宏伟 | 申请(专利权)人: | 腾讯音乐娱乐科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 常忠良 |
地址: | 518052 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 处理 方法 装置 电子设备 存储 介质 | ||
本申请公开了一种代码处理方法,所述代码处理方法包括:向目标代码的当前环境中添加插砖代码;其中,所述目标代码中插入有动态AOP代码;在执行所述目标代码的过程中,判断当前待执行内容是否为所述动态AOP代码;若是,则通过执行所述动态AOP代码从所述当前环境中选取目标插砖代码,并执行所述目标插砖代码;在所述目标插砖代码执行完毕后,继续执行所述目标代码。本申请能够实现动态代码插砖,提高代码插砖效率。本申请还公开了一种代码处理装置、一种电子设备及一种存储介质,具有以上有益效果。
技术领域
本申请涉及计算机技术领域,特别涉及一种代码处理方法、装置、一种电子设备及一种存储介质。
背景技术
在代码编写后,通常需要在原有代码中插入相应的代码,以便执行原有代码时能够执行插入的代码,行业内将以上插入原有代码的代码称之为插砖代码。
相关技术中,通常使用ASM技术向原有代码插入代码,但是上述方式只能在代码编译时插入代码,无法在代码执行过程中插入代码。若想在已发布的代码文件中插入代码,只能重新编译,代码的插砖效率较低。
因此,如何实现动态代码插砖,提高代码插砖效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种代码处理方法、装置、一种电子设备及一种存储介质,能够实现动态代码插砖,提高代码插砖效率。
为解决上述技术问题,本申请提供一种代码处理方法,该代码处理方法包括:
向目标代码的当前环境中添加插砖代码;其中,所述目标代码中插入有动态AOP代码;
在执行所述目标代码的过程中,判断当前待执行内容是否为所述动态AOP代码;
若是,则通过执行所述动态AOP代码从所述当前环境中选取目标插砖代码,并执行所述目标插砖代码;
在所述目标插砖代码执行完毕后,继续执行所述目标代码。
可选的,所述通过执行所述动态AOP代码从所述当前环境中选取目标插砖代码,包括:
通过执行所述动态AOP代码从所述当前环境中获取对应的插砖代码列表;
若所述插砖代码列表不为空,则将所述插砖代码列表中的插砖代码设置为所述目标插砖代码。
可选的,通过执行所述动态AOP代码从所述当前环境中获取对应的插砖代码列表,包括:
通过执行所述动态AOP代码查询映射关系表,并根据所述查询映射关系表从所述当前环境中获取对应的插砖代码列表;其中,所述映射关系表中存储有动态AOP代码与插砖代码的映射关系。
可选的,还包括:
若接收到代码导入指令,则根据所述代码导入指令在所述当前环境中添加新的插砖代码;
查询所述新的插砖代码对应的动态AOP代码,并将所述新的插砖代码与动态AOP代码的映射关系更新至所述映射关系表。
可选的,在执行所述目标插砖代码的过程中,还包括:
将所述动态AOP代码所在函数的函数信息导入所述目标插砖代码;其中,所述函数信息包括类名、函数名和函数参数中的任一项或任几项的组合。
可选的,在执行所述目标代码之前,还包括:
在编译所述目标代码的过程中确定所述目标代码中的所有函数,并向每一函数插入动态AOP代码。
可选的,若所述目标插砖代码的数量大于1,则执行所述目标插砖代码包括:
确定当前目标插砖代码,并执行所述当前目标插砖代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯音乐娱乐科技(深圳)有限公司,未经腾讯音乐娱乐科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110057540.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种石油分离且防火储存的设备
- 下一篇:一种突触素的抗原肽及其抗体与应用