一种嵌入式系统中变量实时查看的方法

文档序号:6460829阅读:250来源:国知局

专利名称::一种嵌入式系统中变量实时查看的方法
技术领域
:本发明涉及一种嵌入式系统的数据处理方法,尤其涉及的是一种适用于基于ELF格式(ExecutableandLinkingFormat)的嵌入式系统目标代码中系统变量实时查看方法。
背景技术
:现有技术的嵌入式系统,特别是大型嵌入式系统都有大量的变量,这些变量的状态决定了系统的运行状态,工程师可以根椐可定位变量的值来确定系统的运行状态及故障。传统查看变量的方法有1、在编写代码的时候人为地加入一些打印信息,人为打出需要察看的变量的值,这种方法要求程序编写者预先判断哪些变量是需要打印的,工作量大且没有针对性。2、实验室通过调试器的接入进行察看,这种方法只能在实验室调试版本中进行,在发行版科艮本无法实施。3、在分析某些系统故障的过程中,需要确切知道系统的变量空间大小,现有方法是通过在程序中使用sizeof()函数求出后打印出来,该方法不适用于对任意变量大小的查看。4、在某些消息或者内存段是某个复杂结构体的时候,如何对这些Buff进行格式化显示目前尚没有工具做到。在设备出现不良运行状态时,通常需要工程师现场定位并快速解决问题,而定位工程师往往需要查看系统的运行状态,这时就需要能够定位内存中变量的实时值,而在现有技术的传统方法中无法满足这种要求,以致工程师解决问题的过程烦瑣且耗费时间。因此,现有技术还有待于改进和发展。
发明内容本发明的目的在于提供一种嵌入式系统中变量实时查看的方法,针对现有技术的上述缺陷,而提供一种能够定位和查询内存中变量实时值的方法。本发明的技术方案包括一种嵌入式系统中变量实时查看的方法,用于一通用嵌入式硬件系统,并由前台服务和后台查询支持两部分构成;并包括以下步骤A、从嵌入式系统的目标代码中提取变量和类型的定义信息;■B、解析这些信息生成结构文件,用于描述变量的结构;C、所述后台查询支持程序利用该结构文件向前台发起查询;D、所述前台服务接收查询信息,并返回相应内存区域的内容给所述后台查询支持程序。所述的方法,其中,还包括步骤E、所述后台查询支持程序解释所述前台服务返回的内容,并显示给用户。所述的方法,其中,所述步骤A还包括分析目标文件的结构,提取其中的STABS节区信息,并从该节区信息中分析出变量和类型定义信息。所述的方法,其中,所述步骤B还包括对变量及类型定义信息进行解析,生成可一次解析的变量及类型定义的树形结构。所述的方法,其中,所述步骤C还包^":所述后台查询支持程序还显示所述结构文件。所述的方法,其中,所述步骤C还包括所述后台查询支持程序利用结构文件解析出对应变量的地址及大小后,向所述前台服务发送查询通知。本发明所提供的一种嵌入式系统中变量实时查看的方法,由于采用了前后台分开的查询并且根据类型定义状态变迁的查看方式,结合查询代理程序方便地查看正在运行的基站软件内存中变量信息,以辅助系统状态分析,其分析解决问题的效率大大提高。图la和图lb分别是本发明方法的前、后台查询流程示意图;图2是本发明方法的类型定义状态变迁图表。具体实施方式下面结合附图,将对本发明的各较佳实施例进行更为详细的描述。本发明的嵌入式系统中变量实时查看的方法,如图la和图lb所示,由前台服务和后台查询支持两部分构成,其结合一通用嵌入式硬件系统工作,基本的步骤过程包括A、从嵌入式系统的目标代码中提取变量和类型的定义信息分析目标文件结构,提取其中的STABS节区信息(调试信息格式),并从该节区信息中分析出变量和类型定义信息。B、解析这些信息生成结构文件,在结构文件中描述了变量的结构采用本发明中提出的词法和文法,结合编译原理方法对变量及类型定义信息进行解析,生成筒单的可一次解析的变量及类型定义的树形结构。C、后台查询支持程序利用该结构文件,进行显示并向前台发起查询后台查询支持程序利用结构文件将解析内容以树形结构显示给用户,用户提交需要查询的变量,后台解析出其地址及大小后,向前台发送查询通知。D、前台在接收到查询信息后返回相应内存区域的内容给后台前台在接收到查询通知后,根据所述结构文件以及解析出的内容,包括地址,将对应内存区域的内容发送到后台。E、后台解释前台返回的查询内容,并显示给用户查看,即可完成对嵌入式系统中变量的实时查看过程。以下结合实例和前、后台查询流程图具体说明其查询过程假设有如下结构体定义structTTestintvarljintvar2;};对于上述结构体定义变量structTTesttTest;为实现测试,在进行查询前将其第一个分量varl置为2,第二个分量var2置为5。通过文法解析知道tTest的类型标志(0,20),该变量存在。接下.来解析其结构信息,具体详细步骤请见下文说明。TTest:T(0,20)-s8varl:(0,l),0,32;var2:(0,l),32,32;;由此得知tTest为结构体,结构体名为TTest,该结构体大小为8字节,第一个分量地址偏移为O,大小为32位,第二个分量地址偏移为32,大小为32位。获取tTest地址为0x7ff567。然后,向前台发送tTest变量查询信息,该信息包含地址0x7ff567及变量长度8,并进入等待接收查询结果的状态。前台在收到该地址和长度之后,将按照指定地址开始相应长度的内存拷贝,并将查询结果发送给后台。后台在收到查询结果后,按上述解析结果将结构体tTest显示给用户,第一个分量varl值为2,第二个分量var2值为5。6以下说明具体的调试信息解析过程从嵌入式系统生成的目标文件中提取对应类型定义结构信息:TTest:T(0,20)=s8varl:(0,l),0,32;var2:(0,l),32,32;;结合图2所示,解释识别上述信息的过程1)、由S1识别名称"TTest,,Sl的状态升迁过程包括SIO、Sll、S12、S13、S14,并且根据Sll、S12和S13之间的编号条件,如S1下的表格所列示,在对上述结构信息识别的过程中,可以4艮据编号1、2、3的条件进行识别,得到结构名称"TTest";同理,S2的状态机包括了S21;S3的状态机包括了S30、S31、S32、S33、S34、S35;S4的状态机包括了S40、S41、S42、S43;S5的状态机包括了S51;S6的状态机包括了S60、S61、S62、S63;S7的状态机包括了S70、S71、S72、S73、S74、S75;S8的状态机包括了S80、S81、S82、S83;整个识别过程为从Sl到S8依次执行。2)、由S2识别该信息为新类型定义标志为"T";3)、由S3识别新类型TTest的编号"(0,20)";4)、由S4、S5识别该新类型为结构体"=s";5)、由S6识别出该类型大小"8";6)、由S7识别出该类型分量一"varl:(0,l),0,32;";7)、由S7识别出该类型分量二"var2:(0,l),32,32;";8)、由S8识别出该句子结束。上述识别过程的一个整体体现在图2中。结合上述各部分局部识别过程,提取出词法定义如下<formula>formulaseeoriginaldocumentpage7</formula>从图2总结出识别结构体的文法如下subtail=SUBTAILIsubtailSUBTAILstructdefmiton=NAMETYPETYPEPAIREQUEALTYPESIZEsubtailEND以上介绍了一条简单的词法和文法构造,经过对C语言各种数据结构的综合分析后,本发明方法定义识别变量和类型定义的词法,略举部分如下<formula>formulaseeoriginaldocumentpage8</formula>本发明所提供的嵌入式系统中变量实时查看的方法,由于采用了前后台分开的查询并且才艮据类型定义状态变迁的查看方式,能够快速有效地解析目标文件中的变量结构定义及变量定义信息,分析变量大小,指定内存的结构体,结合查询代理程序方便地查看正在运行的基站软件内存中变量信息,以辅助系统状态分析,其实现简单,且分析解决问题的效率大大提高。应当理解的是,上述针对本发明较佳实施例的描述较为详细,.但并不能因此而认为是对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。权利要求1、一种嵌入式系统中变量实时查看的方法,用于一通用嵌入式硬件系统,并由前台服务和后台查询支持两部分构成;并包括以下步骤A、从嵌入式系统的目标代码中提取变量和类型的定义信息;B、解析这些信息生成结构文件,用于描述变量的结构;C、所述后台查询支持程序利用该结构文件向前台发起查询;D、所述前台服务接收查询信息,并返回相应内存区域的内容给所述后台查询支持程序。2、冲艮据权利要求1所述的方法,其特征在于,还包括步骤E、所迷后台查询支持程序解释所述前台服务返回的内容,并显示给用户。3、根据权利要求l所述的方法,其特征在于,所述步骤A还包括分析目标文件的结构,提取其中的STABS节区信息,并从该节区信息中分析出变量和类型定义信息。4、4艮据权利要求1所述的方法,其特征在于,所述步骤B还包括对变量及夷型定义信息进行解析,生成可一次解析的变量及类型定义的树形结构。5、根据权利要求1所述的方法,其特征在于,所述步骤C还包括所述后台查询支持程序还显示所述结构文件。6、根据权利要求1所述的方法,其特征在于,所述步骤C还包括所述后台查询支持程序利用结构文件解析出对应变量的地址及大小后,向所述前台服务发送查询通知。全文摘要本发明公开了一种嵌入式系统中变量实时查看的方法,用于一通用嵌入式硬件系统,并由前台服务和后台查询支持两部分构成;并包括以下步骤从嵌入式系统的目标代码中提取变量和类型的定义信息;解析这些信息生成结构文件,用于描述变量的结构;所述后台查询支持程序利用该结构文件向前台发起查询;所述前台服务接收查询信息,并返回相应内存区域的内容给所述后台查询支持程序。本发明方法由于采用了前后台分开的查询并且根据类型定义状态变迁的查看方式,结合查询代理程序方便地查看正在运行的基站软件内存中变量信息,以辅助系统状态分析,其分析解决问题的效率大大提高。文档编号G06F11/36GK101256532SQ20081006647公开日2008年9月3日申请日期2008年4月7日优先权日2008年4月7日发明者鹏万申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1