[发明专利]一种ELF文件生成方法、ELF文件、设备及存储介质有效
申请号: | 201910987429.7 | 申请日: | 2019-10-17 |
公开(公告)号: | CN110764777B | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 张聪 | 申请(专利权)人: | 北京东土科技股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京睿阳联合知识产权代理有限公司 11758 | 代理人: | 赵星;杨生平 |
地址: | 100144 北京市石景*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 elf 文件 生成 方法 设备 存储 介质 | ||
本发明提供一种包含目标数据的数据类型信息的ELF文件生成方法、ELF文件、设备及存储介质,所述ELF文件中包含至少一个数据段和与所述数据段对应的元数据段;所述数据段中存储目标数据;所述元数据段中存储描述所述目标数据的数据类型的元数据。通过在现有ELF文件中添加存储包含描述所述目标数据的数据类型的元数据的数据段,本发明能够实现预加载需要动态获得程序模块的类型数据的数据类型描述信息,从而能够实现程序模块的预加载。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种包含目标数据的数据类型信息的ELF生成方法、包含目标数据的数据类型信息的ELF文件、设备及存储介质。
背景技术
ELF格式文件在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。ELF格式文件是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。
ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program headertable)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排。
目前开发程序都是模块化,需要实现模块的按需加载,即:实现程序模块的预加载;实现预加载需要动态获得程序模块的类型数据的数据类型描述信息。现有的C/C++编译器生成的ELF文件中不包括这样的数据类型的信息数据,无法实现程序模块的预加载。
发明内容
本发明提供一种包含目标数据的数据类型信息的ELF文件生成方法、包含目标数据的数据类型信息的ELF文件设备及存储介质,实现预加载需要动态获得程序模块的类型数据的数据类型描述信息,从而能够实现程序模块的预加载。
本发明提供一种包含目标数据的数据类型信息的ELF文件生成方法,所述方法包括以下步骤:
获取所述ELF文件中用于存储目标数据的数据段;
识别目标数据的数据类型;
基于所述目标数据的数据类型生成用于描述所述目标数据的数据类型的元数据,并以元数据段的形式存储在ELF文件中。
进一步,基于所述目标数据的数据类型生成用于描述所述目标数据的数据类型的元数据,并以元数据段的形式存储在ELF文件中的步骤,进一步包括:
基于所述目标数据的数据类型生成用于描述所述目标数据的数据类型的元数据,并将所述元数据段基于ELF只读数据段方式记录在ELF文件中。
进一步,所述识别目标数据的数据类型的步骤,进一步包括:
基于编译器前端识别目标数据的数据类型;其中,所述数据段预先基于编译器前端编译了特殊标识声明,以供编译器前端基于数据段中特殊标识声明识别目标数据的数据类型。
本发明的另一方面提供一种包含目标数据的数据类型信息的ELF文件,所述ELF文件中包含至少一个数据段和与所述数据段对应的元数据段;
所述数据段中存储目标数据;
所述元数据段中存储描述所述目标数据的数据类型的元数据。
进一步,所述元数据段基于ELF只读数据段方式记录在ELF文件中。
进一步,所述目标数据以多个字段的形式存储在所述数据段中;
相应的,所述元数据段中包含对所述各字段的数据类型描述信息。
进一步,所述数据类型描述信息至少包括字段数据类型信息和字段的偏移量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东土科技股份有限公司,未经北京东土科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910987429.7/2.html,转载请声明来源钻瓜专利网。