一种信息查询命令程序的自动生成方法和系统技术方案

技术编号:19098326 阅读:50 留言:0更新日期:2018-10-03 02:35
本发明专利技术属于嵌入式开发领域,涉及一种信息查询命令程序的自动生成方法和系统,包括自动生成器(1)、调试器(2)、类型库二进制映像以及生成命令输入文件;生成命令输入文件由生成命令和字符正文两部分组成,生成命令和调试器(2)的功能关联,用于查找类型二进制映像中的返回值,所述返回值将会替代生成命令,字符正文是不变部分,统一被输出到信息查询命令程序中;类型二进制映像包含待查询远程系统对象的数据结构信息;生成命令输入文件被输入到自动生成器(1)中,自动生成器(1)控制调试器(2)分析类型库二进制映像,根据生成命令运算得到返回值,自动生成器(1)用返回值替换命令输入文件中的生成命令最终生成信息查询命令程序。

【技术实现步骤摘要】
一种信息查询命令程序的自动生成方法和系统
本专利技术属于嵌入式开发领域,具体涉及一种信息查询命令程序的自动生成方法和系统。
技术介绍
进行嵌入式软件开发时,当前比较通用的做法是使用嵌入式集成开发环境。嵌入式集成开发环境是一系列开发工具的集合,包括源代码编辑、工程管理、交叉编译、调试,还包括一些高级开发工具,比如远程系统浏览等工具等。嵌入式开发环境提供在主机端(通用PC机)开发目标设备(通常是由X86、PowerPC、ARM、MIPS等处理器组成的嵌入式计算机)软件的能力,它的部分代码驻留在目标机端,实现与主机端软件的交互,共同完成特定功能。远程系统浏览就是在主机端浏览远程目标机系统中系统对象的信息,帮助开发人员实时掌握远程系统状态。为了实现此功能,开发环境主机端须发送信息查询命令程序到目标机端,获得远程系统对象信息数据流,组织回复数据并将其展现给用户,从而实现远程系统浏览。开发人员通过嵌入式集成开发环境可以获得目标机系统的相关信息,这些信息主要指的是操作系统内核对象信息,包括:任务、信号量、定时器等。使用信息查询命令程序方式,获得内核对象的信息,是通过访问内核对象的指定内存部分完成的。凭借这种机制,嵌入式集成开发环境就可以帮助开发人员实时的浏览远程数据,监控目标机状态。当前信息查询命令的生成方式主要有如下两种:1.静态分析方式。分析操作系统源码中要查询信息的代码结构,计算该字段在全局变量结构体中的偏移值。使用这种方式,需要开发人员熟练掌握操作系统源码中基本数据类型和复合数据类型的大小的计算方法,熟知字节对齐知识。即使开发人员具有这些能力,编写出来的信息查询命令程序难免出现各类错误,需要进行多次的联合调试,最终才能开发出正确信息查询命令程序。2.编码计算方式。从操作系统源码中抽取出所要查询对象的关联代码,编写程序,通过在目标机上的实际运行,计算出该字段在全局变量结构体中的偏移值。使用这种方式,可以准确得到偏移值,根据偏移值,遵照信息查询命令程序规则,编写信息查询命令程序。但是,由于操作系统源码中剥离关联代码的工作量太大,使得采用这种方式的难度也比较大。并且,上述两种方式都存在维护和扩展困难的问题,当所要查询对象的关联代码结构发生改变时,需要重新计算偏移,对应的信息查询命令程序也需要进行修改。
技术实现思路
本专利技术目的是为了实现信息查询命令程序的自动生成,因此提出一种信息查询命令程序的自动生成方法和系统,本专利技术技术方案提供一种信息查询命令程序的自动生成方法,包括以下步骤:步骤1:自动生成器(1)将类型二进制映像加载到调试器(2)中;步骤2:自动生成器(1)逐行分析生成命令输入文件,判断是不是到达了文件的末尾,如果发现文件结束,到步骤3,否则,到步骤4;步骤3:自动生成器(1)输出信息查询命令程序文件,到步骤6;步骤4:确定该行是否有生成命令,如果未发现生成命令,自动生成器(1)移动到下一行,到步骤2;发现错误的生成命令使用,到步骤6,没有文件生成;识别到正确的生成命令,到步骤5;步骤5:自动生成器(1)根据生成命令调用调试器,调试器分析已加载的类型二进制映像,根据生成命令运算得到返回值,此返回值用于替换生成命令,继续分析下一行,到步骤2;步骤6:生成结束。一种信息查询命令程序的自动生成系统,包括自动生成器(1)、调试器(2)、类型库二进制映像以及生成命令输入文件;生成命令输入文件由生成命令和字符正文两部分组成,生成命令和调试器(2)的功能关联,用于查找类型二进制映像中的返回值,所述返回值将会替代生成命令,字符正文是不变部分,统一被输出到信息查询命令程序中;类型二进制映像包含待查询远程系统对象的数据结构信息;生成命令输入文件被输入到自动生成器(1)中,自动生成器(1)控制调试器(2)分析类型库二进制映像,根据生成命令运算得到返回值,自动生成器(1)用返回值替换命令输入文件中的生成命令最终生成信息查询命令程序。所述返回值包括类型二进制映像中字符的偏移值和大小值。本专利技术优点在于,自动生成信息查询命令相比较与手动方式具有极大的优势,手动的编写信息查询命令程序,需要从操作系统内核中逐个分析数据成员,计算特定字段的大小和偏移,由于体系结构的差异,相同的数据类型可能有不同的数据大小,这样需要开发人员对目标机体系结构有深入的了解并且足够细心,才可以编写正确的信息查询命令程序。因此,采用手动方式非常的费时且极容易导致错误。如果映像中数据结构发生改变发生时,对应的信息查询命令程序将需要重新编写,甚至这种修改可能蔓延到其他信息查询命令程序中去,如果对改变考虑不足,将会引入新的错误。附图说明图1本专利技术自动生成系统交互图;图2本专利技术方法流程图。具体实施方式本专利技术系统包括:类型二进制映像、调试器、生成命令输入文件、信息查询命令程序以及自动生成器。自动生成器负责整体的调度,将类型二进制映像作为符号文件加载到调试器中,该类型二进制映像包含所要查询的数据类型信息。自动生成器逐行的分析生成命令输入文件,每一行中可能包含生成命令或者字符正文等,对于每一个生成命令,都会产生一个调试器的函数调用,调试器分析类型二进制映像,返回运算结果。自动生成器把每一个生成命令替换成对应的数值结果,最终产生信息查询命令程序文件。对该系统的各部分原理描述如下:1.类型二进制映像包含待查询远程系统对象的数据结构信息,它被编译生成时必须带有调试信息(源码语言默认是C语言),只有这样,当它被调试器作为符号文件加载时,调试器才可以查询其中的复杂数据类型或简单数据类型,从而计算出字段的大小和偏移。2.调试器可以是GNU调试器(文中默认),或者其他调试器。需要注意的是调试器与类型二进制映像是有关联的。3.生成命令输入文件由生成命令和字符正文两部分组成。生成命令和调试器的功能有关联,用于查找类型二进制映像中字段的大小值和偏移值,这些值将会替代生成命令;字符正文是不变部分,统一被输出到信息查询命令程序中。4.信息查询命令程序是系统的输出,也是最终的目标文件。5.自动生成器是整个系统的核心部分,它将类型二进制映像加载到调试器中,分析生成命令输入文件,识别生成命令调用调试器获得偏移值等信息,替换生成命令,形成信息查询命令程序。当发现查询命令输入文件中有未定义语法时,自动生成器需要给予使用者提示信息,比如错误的生成命令等,终止自动生成过程,不会产生信息查询命令程序。鉴于该自动生成器以字符处理为核心要务,因此采用perl语言作为开发语言。其他所需的计算机中软硬件信息不在此赘述。下面结合实施例具体描述本专利技术技术方案:1.信息查询命令程序的生成依据信息命令查询程序是根据目标机上远程操作系统内核对象的结构来编写的,主机端的类型二进制映像中就包含了用到的所有数据的大小和结构信息。总的来说有两类的数据类型:基本数据类型和复合数据类型。基本数据类型是由语言定义的简单数据类型,例如int、char等;复合数据类型是用户自定义的数据类型,程序语言一般支持用户自定义数据类型,例如C语言中struct,它里面可以包含基本的数据类型或者其它复合数据类型。假设目标机运行代码中存在如下数据结构:typedefstructnode{structnode*pNextintattributeintvalue;ch本文档来自技高网
...

【技术保护点】
1.一种信息查询命令程序的自动生成方法,其特征在于,包括以下步骤:步骤1:自动生成器(1)将类型二进制映像加载到调试器(2)中;步骤2:自动生成器(1)逐行分析生成命令输入文件,判断是不是到达了文件的末尾,如果发现文件结束,到步骤3,否则,到步骤4;步骤3:自动生成器(1)输出信息查询命令程序文件,到步骤6;步骤4:确定该行是否有生成命令,如果未发现生成命令,自动生成器(1)移动到下一行,到步骤2;发现错误的生成命令使用,到步骤6,没有文件生成;识别到正确的生成命令,到步骤5;步骤5:自动生成器(1)根据生成命令调用调试器,调试器分析已加载的类型二进制映像,根据生成命令运算得到返回值,此返回值用于替换生成命令,继续分析下一行,到步骤2;步骤6:生成结束。

【技术特征摘要】
1.一种信息查询命令程序的自动生成方法,其特征在于,包括以下步骤:步骤1:自动生成器(1)将类型二进制映像加载到调试器(2)中;步骤2:自动生成器(1)逐行分析生成命令输入文件,判断是不是到达了文件的末尾,如果发现文件结束,到步骤3,否则,到步骤4;步骤3:自动生成器(1)输出信息查询命令程序文件,到步骤6;步骤4:确定该行是否有生成命令,如果未发现生成命令,自动生成器(1)移动到下一行,到步骤2;发现错误的生成命令使用,到步骤6,没有文件生成;识别到正确的生成命令,到步骤5;步骤5:自动生成器(1)根据生成命令调用调试器,调试器分析已加载的类型二进制映像,根据生成命令运算得到返回值,此返回值用于替换生成命令,继续分析下一行,到步骤2;步骤6:生成结束。2.一种信息查询命令...

【专利技术属性】
技术研发人员:林卓李运喜任晓瑞张旻麦先根田丹
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西,61

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

1