一种可追溯目标码的生成方法及可追溯目标码生成器技术

技术编号:11003477 阅读:121 留言:0更新日期:2015-02-05 03:41
本发明专利技术提供一种可追溯目标码的生成方法及可追溯目标码生成器。可追溯目标码的生成方法包括:获取编译环境信息,获取源码版本信息,解析所述编译环境信息和所述源码版本信息,形成预编译信息,将所述预编译信息写入目标码。本发明专利技术提供的可追溯目标码的生成方法及可追溯目标码生成器在生成目标码的过程中,提取原始编译脚本的版本信息和编译环境信息,通过预编译的方式将版本信息和编译环境信息植入目标码。因此当目标码运行过程中出现问题时,能够方便从目标码中定位编译过程中源码的版本信息并确定目标码编译时的编译环境信息,能够提高修复目标码的工作效率。

【技术实现步骤摘要】
—种可追溯目标码的生成方法及可追溯目标码生成器
本专利技术涉及计算机编译领域,特别是涉及一种可追溯目标码的生成方法及可追溯目标码生成器。
技术介绍
随着计算机技术的发展,越来越多的工作能够由计算机完成。人与计算机的交互需要通过计算机能够识别的语言完成。在实现特定功能时,工程师需要编写特定的语言,供计算机识别。但这些语言有高级语言,有低级语言。计算机只能识别最低级的语言。因此,要实现计算机识别语言,需要将高级的语言一步步变成低级的计算机能够直接识别的语言,这个过程,通常表现为将源代码转换为目标码。 源代码转化的目标码出错后,需要寻找到其对应的源代码的信息,以及源代码转化为目标码时的转化环境,以便有针对性地改正出错的部分,使其功能正常实现。 但是目前的目标码不含有源代码版本信息和转换环境,在出问题时就无法向源代码进行追溯,导致修复目标码时效率降低。
技术实现思路
本专利技术的目的是提供一种可追溯目标码的生成方法及可追溯目标码生成器,实现目标码向源代码的可追溯性,提高修复目标码的效率。 一种可追溯目标码的生成方法,包括: 获取编译环境信息; 获取源码版本信息; 解析所述编译环境信息和所述源码版本信息,形成预编译信息; 将所述预编译信息写入目标码。 优选地,所述获取编译环境信息包括: 提取环境变量; 获取所述环境变量包含的编译环境信息。 优选地,所述源码获取源码版本信息包括: 提取版本信息变量; 获取所述版本信息变量包含的所述源码版本信息。 优选地,所述解析所述编译环境信息和所述源码版本信息,形成预编译信息包括: 将所述环境变量和所述版本信息变量写入预编译文件; 对述预编译文件解析,形成含有所述编译环境信息和所述源码版本信息的预编译信息。 优选地,所述将所述预编译信息写入目标码,包括: [0021 ]通过链接参数链接所述预编译信息和所述目标码。 一种可追溯目标码生成器,包括: 环境信息获取模块,用于获取编译环境信息; 版本信息获取模块,用于获取源码版本信息; 与所述环境信息获取模块和所述版本信息获取模块相连的预编译模块,用于解析所述编译环境信息和所述源码版本信息,形成预编译信息; 与所述预编译模块相连的写入模块,用于将所述预编译信息写入目标码。 优选地,所述环境信息获取模块包括: 第一提取单元,用于提取环境变量; 与所述第一提取单元相连的环境信息获取单元,用于获取所述环境变量包含的所述编译环境信息。 优选地,所述版本信息获取模块包括: 第二提取单元,用于提取版本信息变量; 与所述第二提取单元相连的版本信息获取单元,用于获取所述版本信息变量包含的所述源码版本信息。 优选地,所述预编译模块包括: 预编译信息写入单元,用于将所述环境变量和所述版本信息变量写入预编译文件; 与所述预编译信息写入单元相连的解析单元,用于对述预编译文件解析,形成含有所述编译环境信息和所述源码版本信息的预编译信息。 优选地,所述写入模块包括: 链接参数单元,用于链接所述预编译信息和所述目标码。 因此,本专利技术具有如下有益效果: 本专利技术在生成目标码的过程中,提取原始编译脚本的版本信息和编译环境信息,通过预编译的方式将版本信息和编译环境信息植入目标码。因此当目标码运行过程中出现问题时,能够方便从目标码中定位编译过程中源码的版本信息并确定目标码编译时的编译环境信息。提高了修复目标码的工作效率。 【附图说明】 图1为本专利技术提供的一种可追溯目标码的生成方法流程图; 图2为本专利技术提供的另一种可追溯目标码的生成方法流程图; 图3为本专利技术提供的一种可追溯目标码的生成器结构示意图; 图4为本专利技术提供的可追溯目标码的生成器中一种具体的环境信息获取模块结构示意图; 图5为本专利技术提供的可追溯目标码的生成器中一种具体的版本信息获取模块结构示意图; 图6为本专利技术提供的可追溯目标码的生成器中一种具体的预编译模块结构示意图; 图7为本专利技术提供的可追溯目标码的生成器中一种具体的写入模块结构示意图; 图8为本专利技术提供的另一种可追溯目标码的生成器结构示意图。 【具体实施方式】 本专利技术的核心是提供一种可追溯目标码的生成方法和可追溯目标码生成器实现目标码出问题时,可以准确定位编译目标码过程中所用到的编译环境和源码版本,提高修复目标码的效率。 为了使本
的人员更好地理解本专利技术的方案,下面结合附图和【具体实施方式】对本专利技术作进一步的详细说明。 本专利技术公开的一种可追溯目标码的生成方法,参见图1,该方法包括以下步骤: S101、获取编译环境信息。 编译环境信息可以包括编译时使用的操作系统、中间件、数据库、可以唯一标识编译环境信息的编译机器名、标识编译人员信息的编译用户名、以及编译日期和时间。 S102、获取源码版本信息。 在需要追溯源码信息时,查看源码版本信息能够知道源码的哪一部分做了改动,更有助于提高修复源码的效率。 S103、解析所述编译环境信息和所述源码版本信息,形成预编译信息。 在具体的预编译过程中,往往是对携带有获取编译环境信息命令和获取源码版本信息命令的变量的值进行解析,得到含有编译环境信息和源码版本信息的预编译信息。 S104、将所述预编译信息写入目标码。 在本实施方案中,获取编译环境信息和获取源码版本信息之间没有先后顺序。本方案提供的先获取编译环境信息再获取源码版本信息指示一个具体举例。在其他情况下,可以根据需要先获取源码版本信息或者同时获取编译环境信息和源码版本信息。 本专利技术在编译源码生成目标码的过程中,提取原始编译脚本的版本信息和编译环境信息,将版本信息和编译环境信息经过预编译形成预编译信息并植入目标码。当目标码运行出错,能够方便从目标码中定位编译过程中源码的版本信息并确定目标码编译时的编译机器、编译用户等信息。这样的准确定位提高了修复目标码的工作效率。而且,在将版本信息和编译环境信息植入目标码的过程中,用到的是原始编译脚本,因而不需要增加其他资源,调用其他模块。 本专利技术公开的另一种可追溯目标码的生成方法,参见图2,该方法包括以下步骤: S201、提取环境变量。 在环境变量中,包含了提取编译环境信息的命令。要最终获取编译环境信息,首先需要提取环境变量。 S202、获取所述环境变量包含的编译环境信息。 在一个具体场景下,以buildinfo作为环境变量,以C语言为例,获取编译环境信息的方式可以是以下语句: buildinfo = const char zgbbuildinfo [] = Builton' uname-n' by' id-un' at' date+% Y% m% d'' date+% T' 其中 uname-n 可以获取 unix环境下的机器名,id-un是获取编译时所用用户信息,date ate+% Y% m% d是获取编译时的日期,而date+% T则是获取编译时间。在编译过程中会将上述命令执行的结果赋值给buildinfo 变量。 当然,在不同的情况下,可以根据需要提取相关的编译环境信息。 S203、提取版本信息变量。 在这里,版本信息变量中包含了获取源码版本信息的命令,编译本文档来自技高网
...

【技术保护点】
一种可追溯目标码的生成方法,其特征在于,包括:获取编译环境信息;获取源码版本信息;解析所述编译环境信息和所述源码版本信息,形成预编译信息;将所述预编译信息写入目标码。

【技术特征摘要】
1.一种可追溯目标码的生成方法,其特征在于,包括: 获取编译环境信息; 获取源码版本信息; 解析所述编译环境信息和所述源码版本信息,形成预编译信息; 将所述预编译信息写入目标码。2.如权利要求1所述的可追溯目标码的生成方法,其特征在于,所述获取编译环境信息包括: 提取环境变量; 获取所述环境变量包含的编译环境信息。3.如权利要求1所述的可追溯目标码的生成方法,其特征在于,所述源码获取源码版本信息包括: 提取版本信息变量; 获取所述版本信息变量包含的所述源码版本信息。4.如权利要求1所述的可追溯目标码的生成方法,其特征在于,所述解析所述编译环境信息和所述源码版本信息,形成预编译信息包括: 将所述环境变量和所述版本信息变量写入预编译文件; 对述预编译文件解析,形成含有所述编译环境信息和所述源码版本信息的预编译信肩、O5.如权利要求1所述的可追溯目标码的生成方法,其特征在于,所述将所述预编译信息写入目标码,包括: 通过链接参数链接所述预编译信息和所述目标码。6.一种可追溯目标码生成器,其特征在于,包括: 环境信息获取模块,用于获取编译环境信息; 版本信息获取模块,用于获取源码版本信息...

【专利技术属性】
技术研发人员:孙绍伟李明
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1