【技术实现步骤摘要】
补丁方法及相关设备
[0001]本申请涉及计算机
,尤其涉及一种补丁方法及相关设备。
技术介绍
[0002]现在还未有针对WebAssembly应用实现的补丁方案,如需替换WebAssembly文件中的特定函数,则需要重新编译整个源文件,得到替换函数后的新二进制格式的.wasm文件,以新版本应用的形式在WebAssembly虚拟机中进行加载运行。
技术实现思路
[0003]本申请实施例提供了一种补丁方法及相关设备,能够实现使用补丁对WebAssembly应用进行函数级的替换和更新。
[0004]第一方面,本申请实施例提供了一种补丁方法,包括:在原文件的编译过程中,生成编译信息表,其中,所述原文件为WebAssembly二进制格式的文件,所述编译信息表记录有原函数的函数索引,所述原函数为所述原文件中的函数;在补丁文件的编译过程中,根据所述编译信息表生成函数对应表,其中,所述补丁文件为WebAssembly二进制格式的文件,所述函数对应表记录有所述原函数与补丁函数的对应关系,所述补丁函数为所述补丁文 ...
【技术保护点】
【技术特征摘要】
1.一种补丁方法,其特征在于,包括:在原文件的编译过程中,生成编译信息表,其中,所述原文件为WebAssembly二进制格式的文件,所述编译信息表记录有原函数的函数索引,所述原函数为所述原文件中的函数;在补丁文件的编译过程中,根据所述编译信息表生成函数对应表,其中,所述补丁文件为WebAssembly二进制格式的文件,所述函数对应表记录有所述原函数与补丁函数的对应关系,所述补丁函数为所述补丁文件中的函数;在所述原文件的加载过程中,根据所述函数对应表将函数索引空间中的所述原函数的函数地址替换为所述补丁函数的函数地址,其中,所述函数索引空间在所述原文件的加载过程中生成。2.根据权利要求1所述的方法,其特征在于,所述补丁文件中的函数有且仅有补丁函数。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述函数对应表将函数索引空间中的所述原函数的函数地址替换为所述补丁函数的函数地址,包括:根据所述函数对应表判断是否存在所述补丁函数;若存在所述补丁函数,则从所述补丁文件的代码段中获取所述补丁函数的函数地址;将所述函数索引空间中的所述原函数的函数地址替换为所述补丁函数的函数地址。4.根据权利要求1
‑
3任一项所述的方法,其特征在于,所述编译信息表还记录有所述原文件的内存段尺寸;所述方法还包括:在所述补丁文件的编译过程中,从所述编译信息表中获取所述原文件的内存段尺寸;根据所述原文件的内存段尺寸和所述补丁函数的数据偏移量编译所述补丁文件的代码段。5.根据权利要求1
‑
4任一项所述的方法,其特征在于,所述编译信息表还记录有被调用函数的函数索引,所述被调用函数为被所述原函数调用的函数;所述方法还包括:在所述补丁文件的编译过程中,从所述编译信息表中获取所述被调用函数的函数索引;根据所述被调用函数的函数索引编译所述补丁文件的代码段。6.根据权利要求5所述的方法,其特征在于,所述被调用函数为被所述原函数直接调用的函数,所述补丁文件的代码段包括直接调用指令,所述直接调用指令包括所述被调用函数的函数索引。7.根据权利要求5所述的方法,其特征在于,所述编译信息表还记录有所述被调用函数的函数签名索引、所述原文件的元素段尺寸;所述被调用函数为被所述原函数间接调用的函数;所述根据所述被调用函数的函数索引编译所述补丁文件的代码段,包括:从所述编译信息表中获取所述被调用函数的函数签名索引;根据所述被调用函数的函数索引编译所述补丁文件的元素段,以得到所述被调用函数的元素索引;根据所述原文件的元素段尺寸和所述被调用函数的元素索引编译所述补丁文件的代码段,其中,所述补丁文件的代码段包括间接调用指令,所述间接调用指令包括所述被调用函数的函数签名索引。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述原文件的加载过程中,从所述补丁文件中获取所述被调用函数的元素索引;将所述被调用函数的元素索引添加至表格索引空间中,其中,所述表格索引空间在所述原文件的加载过程中生成。9.根据权利要求5
‑
8任一项所述的方法,其特征在于,所述被调用函数为虚拟机导入函数;在所述从所述编译信息表中获取所述被调用函数的函数索引之前,所述方法还包括:生成所述被调用函数的函数索引;将所述被调用函数的函数索引添加至所述编译信息表中。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:在所述原文件的加载过程中,通过所述原文件的导入段将所述被调用函数添加至所述函数索引空间中。11.一种补丁装置,其特征在于,所述装置包括处理单元,所述处理单元用于:在原文件的编译过程中,生成编译信息表,其中,所述原文件为WebAssembly二进制格式的文件,所述编译信息表记录有原函数的函数索引,所述原函数为所述原文件中的函数;在补丁文件的编译过程中,根据所述编译信息表生成函数对应表,...
【专利技术属性】
技术研发人员:朱金鹏,喻钢,任文杰,张毓,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。