[发明专利]代码修复方法及装置、电子设备、计算机可读存储介质有效
申请号: | 201910809755.9 | 申请日: | 2019-08-29 |
公开(公告)号: | CN110673837B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 车雄生 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强;贾允 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 修复 方法 装置 电子设备 计算机 可读 存储 介质 | ||
本公开提供一种代码修复方法、代码修复装置、电子设备、计算机可读存储介质;涉及软件工程技术领域。所述代码修复方法包括:获取对原始代码进行编译处理后生成的初始动态库;对初始动态库进行代码注入处理以生成修改动态库;从修改动态库中确定带有补丁标签的函数作为补丁函数,并生成补丁函数的执行信息;响应于代码执行指令,根据执行信息调用补丁函数,以对原始代码进行修复处理。本公开可以在原始代码所在的代码工程中直接修改代码,便于实现在客户端通过加载补丁文件包对原始代码进行代码修复的效果,同时具有操作简单,修复代价小等优点。
技术领域
本公开涉及软件工程技术领域,具体而言,涉及一种代码修复方法、代码修复装置、电子设备以及计算机可读存储介质。
背景技术
在软件开发过程中,通常要对代码进行多次迭代和更新,为代码项目添加新的功能模块或修复代码项目中出现的问题(bug),以使对应的应用程序更适合用户的使用需求。
现有技术中的代码修复技术,开发人员可以采用脚本语言编写的代码逻辑替换原始代码中的代码逻辑,当业务代码中的bug涉及的逻辑太多时,可能导致代码修复过程中开发人员的工作量较大;另外,由于代码修改涉及的代码量较大,可能导致新的代码逻辑中重新出现新bug的问题,降低了开发人员的开发效率。同时,采用脚本语言对原代码工程中的代码进行修改时,开发人员还需学习新的脚本语言,给开发人员造成一定的学习负担。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种代码修复方法、代码修复装置、电子设备以及计算机可读存储介质,进而在一定程度上克服由于相关技术的限制和缺陷而导致的,业务代码中的bug涉及的逻辑太多而导致修复代价大的问题。
根据本公开的第一方面,提供一种代码修复方法,包括:获取对原始代码进行编译处理后生成的初始动态库;对所述初始动态库进行代码注入处理以生成修改动态库;从所述修改动态库中确定带有补丁标签的函数作为补丁函数,并生成所述补丁函数的执行信息;响应于代码执行指令,根据所述执行信息调用所述补丁函数,以对所述原始代码进行修复处理。
根据本公开的第二方面,提供一种代码修复装置,包括:初始动态库获取模块,用于获取对原始代码进行编译处理后生成的初始动态库;修改动态库生成模块,用于对所述初始动态库进行代码注入处理以生成修改动态库;执行信息生成模块,用于从所述修改动态库中确定带有补丁标签的函数作为补丁函数,并生成所述补丁函数的执行信息;函数调用模块,用于响应于代码执行指令,根据所述执行信息调用所述补丁函数,以对所述原始代码进行修复处理。
在本公开的一种示例性实施例中,所述修改动态库生成模块包括:待注入模块确定单元,用于基于所述初始动态库确定一个或多个代码模块作为待注入模块;配置文件生成单元,用于根据所述待注入模块生成配置文件;修改动态库生成单元,用于根据所述配置文件对所述初始动态库进行代码注入处理,以生成所述修改动态库。
在本公开的一种示例性实施例中,所述修改动态库生成单元包括:函数库获取单元,用于获取目标函数库;代码注入单元,用于根据所述配置文件以及所述目标函数库向所述初始动态库中添加修改代码段,以完成所述代码注入处理;其中,所述修改代码段包括所述待注入模块的代码执行重定向信息。
在本公开的一种示例性实施例中,所述代码注入单元被配置为:基于所述目标函数库确定适配器;其中,所述适配器包括函数适配器与接口适配器;根据所述函数适配器与所述接口适配器生成所述修改代码段;确定所述初始动态库对应的中间指令;根据所述配置文件将所述修改代码段添加至所述中间指令,以完成所述代码注入处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910809755.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种代码补全方法、装置、计算设备及存储介质
- 下一篇:输入校验的方法