[发明专利]程序的功能变更方法及装置在审
| 申请号: | 201510964889.X | 申请日: | 2015-12-18 |
| 公开(公告)号: | CN105630491A | 公开(公告)日: | 2016-06-01 |
| 发明(设计)人: | 丁鹏;韩鹏 | 申请(专利权)人: | TCL集团股份有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/445 |
| 代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
| 地址: | 516006 广东省*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 功能 变更 方法 装置 | ||
技术领域
本发明属于计算机技术领域,尤其涉及程序的功能变更方法及装置。
背景技术
通过C/C++等编程语言编写的程序,在经过预处理、编译、汇编、链接等 编译过程之后生成可执行文件,而程序的运行即是对可执行文件的运行。然而 在现阶段,一旦程序编译完成,其程序功能是不能发生改变的,若要变更程序 功能,只能对程序的源代码进行修改,并重复上述预处理、编译、汇编、链接 的编译过程,生成新的可执行文件以重新运行,实现过程复杂。
发明内容
有鉴于此,本发明实施例提供了程序的功能变更方法及装置,旨在解决现 有技术在程序编译完成之后无法改变其程序功能的问题。
第一方面,提供了一种程序的功能变更方法,包括:
接收函数替换请求和替换函数,所述函数替换请求用于将程序的源代码中 的目标函数变更为所述替换函数;
将所述替换函数编译为临时动态库后获取所述替换函数对应的函数地址, 将所述替换函数对应的函数地址与所述目标函数关联后写入预设的全局符号表;
在所述程序的运行过程中,执行所述目标函数之前,通过所述预设的全局 符号表获取所述替换函数对应的函数地址;
将所述目标函数的入口变更为所述替换函数对应的函数地址,执行所述替 换函数,返回函数值。
第二方面,提供了一种程序的功能变更装置,包括:
接收单元,用于接收函数替换请求和替换函数,所述函数替换请求用于将 程序的源代码中的目标函数变更为所述替换函数;
写入单元,用于将所述替换函数编译为临时动态库后获取所述替换函数对 应的函数地址,将所述替换函数对应的函数地址与所述目标函数关联后写入预 设的全局符号表;
获取单元,用于在所述程序的运行过程中,执行所述目标函数之前,通过 所述预设的全局符号表获取所述替换函数对应的函数地址;
变更单元,用于将所述目标函数的入口变更为所述替换函数对应的函数地 址,执行所述替换函数,返回函数值。
本发明实施例可以实现在程序编译完成之后,尤其是在程序的运行过程之 中,对程序功能的变更,使得对程序的功能变更无需再经历复杂的程序编译过 程,变更过程具备实时性和动态性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的程序的功能变更方法的实现流程图;
图2是本发明实施例提供的程序的功能变更方法S101的具体实现流程图;
图3是本发明另一实施例提供的程序的功能变更方法的实现流程图;
图4是本发明实施例提供的功能变更装置的结构框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术 之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当 清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中, 省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节 妨碍本发明的描述。
图1示出了本发明实施例提供的程序的功能变更方法的实现流程,详述如 下:
在S101中,接收函数替换请求和替换函数,所述函数替换请求用于将程 序的源代码中的目标函数变更为所述替换函数。
在本发明实施例中,函数替换请求和替换函数一起发送,函数替换请求指 向了程序的源代码中的某一目标函数,用于指示在该程序的运行过程中,需要 执行该目标函数时,将对目标函数的执行变更为对替换函数的执行,从而达到 对程序进行功能变更的目的。其中,发送函数替换请求和替换函数的一方可以 为运行该程序的终端的本机进程,也可以为相对于运行该程序的终端来说的远 程进程。
作为本发明的一个实施例,接收函数替换请求和替换函数的动作可以发生 在程序的运行过程中,如图2所示,S101具体通过以下方式实现:
在S201中,在所述程序启动运行之后,创建用于接收函数替换请求和替 换函数的线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于TCL集团股份有限公司,未经TCL集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510964889.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:燃料电池
- 下一篇:用于制造三维薄膜太阳能电池的模板及使用方法





