[发明专利]程序代码的运行方法和运行装置以及编译方法和编译装置有效
申请号: | 201811194861.2 | 申请日: | 2018-10-15 |
公开(公告)号: | CN111045657B | 公开(公告)日: | 2021-08-13 |
发明(设计)人: | 孙渊磊;蒋奕;陈永健;周正兴 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 陈洪艳;王君 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序代码 运行 方法 装置 以及 编译 | ||
1.一种程序代码的运行方法,其特征在于,包括:
确定被声明为原生方法的第一方法的符号名和该第一方法对应的原生方法的地址,所述符号名用于标识所述第一方法;
根据所述第一方法的符号名确定与所述第一方法对应的第一注册表项,所述第一注册表项包括第一字段,所述第一字段中记录的信息用于确定所述第一方法的符号名;
在所述第一注册表项包括的第二字段中记录所述第一方法对应的原生方法的地址。
2.根据权利要求1所述的运行方法,其特征在于,所述第一注册表项中的第一字段中记录的是所述第一方法的符号名。
3.根据权利要求1所述的运行方法,其特征在于,所述第一注册表项中的第一字段中记录所述第一方法的符号名相对于所述第一注册表项的地址偏移量,所述第一符号名记录在字符串表中,所述字符串表中记录一个或多个被声明为原生方法的方法的符号名。
4.根据权利要求1至3中任一项所述的运行方法,其特征在于,根据所述第一方法的符号名确定与所述第一方法对应的第一注册表项,包括:
计算所述第一方法的符号名的哈希值;
将所述哈希值作为第一索引,确定哈希表中与该第一索引对应的第一哈希表项,所述哈希表中的哈希表项用于记录所述哈希表项对应的注册表项在原生注册表中的索引,所述原生注册表中包括一个或多个注册表项;
将所述原生注册表中与所述第一哈希表项中记录的第二索引对应的注册表项确定为所述第一注册表项。
5.根据权利要求1至3中任一项所述的运行方法,其特征在于,所述运行方法还包括:
确定所述第一方法的调用桩,所述调用桩中包括第一标签,第一标签与所述第一方法对应的第一注册表项具有对应关系;
根据所述第一标签和所述对应关系,确定所述第一方法对应的所述第一注册表项;
根据所述第一注册表项包括的第二字段中记录的地址,调用所述第一方法对应的原生方法。
6.一种程序代码的编译方法,其特征在于,包括:
确定待编译代码;
为所述待编译代码中被声明为原生方法的第一方法生成所述第一方法对应的第一注册表项,所述第一注册表项包括第一字段和第二字段,所述第一字段中记录的信息用于确定所述第一方法的符号名,所述第二字段用于记录所述第一方法对应的原生方法的地址,所述第一方法的符号名用于标识所述第一方法。
7.根据权利要求6所述的编译方法,其特征在于,所述第一注册表项中的第一字段中记录的是所述第一方法的符号名。
8.根据权利要求6所述的编译方法,其特征在于,所述第一注册表项中的第一字段中记录所述第一方法的符号名相对于所述第一注册表项的地址偏移量,所述第一方法的符号名记录在字符串表中,所述字符串表中记录一个或多个被声明为原生方法的方法的符号名。
9.根据权利要求6至8中任一项所述的编译方法,其特征在于,所述编译方法还包括:
计算所述第一方法的符号名的哈希值;
将所述哈希值作为第一索引,确定哈希表中与该第一索引对应的第一哈希表项;
将所述第一注册表项在原生注册表中的第二索引写入所述第一哈希表项中,所述原生注册表中包括一个或多个注册表项。
10.根据权利要求6至8中任一项所述的编译方法,其特征在于,所述编译方法还包括:
根据所述第一方法的符号名生成与所述第一注册表项对应的标签,所述标签用于唯一识别所述第一注册表项;
为调用所述第一方法的语句生成调用桩,所述调用桩中包括所述标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811194861.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种金属喷淋清洗剂
- 下一篇:一种直驱风机虚拟同步发电系统