CN1139876C - 嵌入式软件辅助调试方法 - Google Patents

嵌入式软件辅助调试方法 Download PDF

Info

Publication number
CN1139876C
CN1139876C CNB991172604A CN99117260A CN1139876C CN 1139876 C CN1139876 C CN 1139876C CN B991172604 A CNB991172604 A CN B991172604A CN 99117260 A CN99117260 A CN 99117260A CN 1139876 C CN1139876 C CN 1139876C
Authority
CN
China
Prior art keywords
debugging
module
interface module
message
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB991172604A
Other languages
English (en)
Other versions
CN1286431A (zh
Inventor
刘韫晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB991172604A priority Critical patent/CN1139876C/zh
Publication of CN1286431A publication Critical patent/CN1286431A/zh
Application granted granted Critical
Publication of CN1139876C publication Critical patent/CN1139876C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种嵌入式软件辅助调试方法,首先由预编译模块对编译时生成的符号表文件进行扫描分析,生成调试信息文件;嵌入式系统中的调试代理模块在运行时记录故障信息,当分析故障现场时,通过嵌入式系统的通讯口连接调试主机,故障信息经调试接口模块显示;调试接口模块还负责接收调试命令,经调试信息文件解释后再送至调试代理模块,调试代理模块将相应信息返回调试接口模块显示。能够克服目前的各种商用调试手段弱点,提高嵌入式软件质量。

Description

嵌入式软件辅助调试方法
本发明涉及计算机技术,具体地说,涉及嵌入式软件的调试技术。
随着微处理机在通讯产品,医疗设备和信息家电等领域越来越广泛的应用,与之相对应嵌入式软件的功能也日益复杂,规模逐渐变得庞大。这样在嵌入式软件的发展过程中就不得不面对一个严峻的问题:即软件的质量问题。但嵌入式软件的开发调试过程有相当的难度,这是由其特点所决定的:
嵌入式软件一般在嵌入式操作系统上运行,其操作系统平台与应用程序一般合在一起构成整个嵌入式软件。它的硬件运行平台常常是某些专用处理器芯片,因此嵌入式软件的开发调试一般都需要专门的硬件或软件工具支持,但其支持仅限于开发阶段,且需要编译器生成专门的调试版本。等系统调试结束,生成运行版本,脱离调试环境运行后,这些工具就无能为力了。
嵌入式系统一般需要长时间可靠的工作,而调试阶段又不能发现所有的错误,这样在嵌入式系统的工作过程中可能会有故障随机发生,而故障发生后,又缺乏对故障现场分析调试的有效手段,往往很难扑捉住故障并进行故障定位。给嵌入式软件的质量提高带来了困难。
本发明的目的就是针对现有技术的上述缺点,提出一种比较通用的嵌入式软件运行版本的辅助调试方法,它在一定程度上克服了目前的各种商用调试手段主要针对调试版本的弱点,在嵌入式系统的实际运行阶段可以提供调试手段,通过该工具可以输出嵌入式软件在运行中发生的故障信息,并能够对故障现场做进一步的分析,以找到故障的原因,从而使嵌入式软件的质量得到进一步的提高,该方法是对各种商用调试手段的重要补充。
为了实现本发明目的,采用以下技术方案:首先由预编译模块对编译时生成的符号表文件进行扫描分析,生成调试信息文件,存放于调试主机;嵌入式系统中的调试代理模块在运行时记录故障信息,当对故障现场进行分析时,通过嵌入式系统的通讯口连接调试主机,故障信息经通讯链路送至调试主机的调试接口模块,并由调试接口模块显示;调试接口模块还负责接收调试命令,经调试信息文件解释后再送至调试代理模块,调试代理模块将相应信息返回调试接口模块显示。
所述的预编译模块是这样对符号表文件进行扫描分析的:所述的符号表文件是在运行版本编译时生成的,经预编译模块处理后生成的调试信息文件包含以下信息:全局变量名,静态变量名的字符串表示,各变量在内存中的起始物理地址,以及两者之间的对应关系。该调试信息文件仅存在于调试主机上,不占用嵌入式系统的存储空间。
所述的调试代理模块存在于嵌入式系统中,它负责以下功能:通讯接口的驱动;接收调试接口模块发送来的调试命令并将相应的信息返回调试接口模块;提供对应用程序的故障信息输出接口,在已连接调试接口模块的情况下,将故障信息发送给调试接口模块。调试代理模块的存在不影响系统的正常运行。
所述的调试接口模块存在于调试主机上,调试接口模块一方面接收用户的调试命令,一方面处理调试代理模块返回的调试信息。
当调试接口模块接收到命令后,根据消息的来源判定是来自用户的调试命令还是调试代理模块返回的调试信息,若为调试代理模块返回的调试信息,则对其中的控制符进行解释,并输出到磁盘或显示器;若为用户的调试命令,则首先由命令中给出的变量名为关键字,在调试信息文件中找到该变量的物理地址,并判断是对故障现场的查询命令还是修改命令;然后给嵌入式系统中的调试代理模块发送相应的命令,指示其返回指定地址的数值或将其修改为某值,最后等待调试代理模块返回信息并显示。
应用本发明提供的嵌入式软件辅助调试方法,可以有效地监测记录嵌入式软件在运行时的故障信息。当故障发生时,可以对故障现场进行查询修改,给故障的分析定位提供了有力的支持。本发明提供的方法,并不局限于某一产品,也不受运行平台的限制,是一个比较通用的调试方法,可以大大提高嵌入式系统的可调试性,改善调试效率和程序质量,并可大大降低在嵌入式软件调试方面的开销。
下面通过具体的实施例并结合附图对本发明作进一步详细地描述。
图1是利用本发明方法进行工作的框图;
图2是调试接口模块的工作流程。
在图1中,描述了本辅助调试方法的工作过程:应用程序模块1和调试代理模块2运行于嵌入式系统上,调试接口模块6运行于调试主机上;符号表文件3是对应用程序进行编译连接时产生的。在调试前,预编译模块4将对符号表文件3进行预处理,得到调试信息文件5,预编译模块4、调试信息文件5与调试接口模块6共存于调试主机上。当嵌入式系统在运行中出现故障时,用嵌入式系统提供的通讯链路连接嵌入式系统和调试主机,并运行调试主机上的调试接口模块6,这时就可以通过一系列的调试命令对嵌入式系统中的故障现场进行观察修改,以定位故障原因。
在图2中,详细地描述了调试接口模块的工作流程:调试接口模块一方面接收用户的调试命令,一方面处理调试代理模块返回的调试信息。
若调试接口模块接收到调试代理模块送来的调试信息,则对其中的控制符进行解释,根据控制符的类型确定调试信息的显示方向:显示器或磁盘,并显示;
接收到用户的调试命令后进行分析,若为故障现场的查询命令,则根据命令参数中的变量名,从调试信息文件中查询到相应变量的起始物理地址,然后将该地址随查询命令一起发送至调试代理模块,等待调试代理模块返回信息,对其中的控制符进行解释,根据控制符的类型确定调试命令的显示方向:显示器或磁盘,并显示;
若为故障现场的修改命令,则根据命令参数中的变量名,从调试信息文件中查询到相应变量的起始物理地址,然后将该地址和修改后的新值随查询命令一起发送至调试代理模块,等待调试代理模块返回信息,对其中的控制符进行解释,根据控制符的类型确定修改命令的显示方向:显示器或磁盘,并显示;
在某嵌入式系统中,采用了AMD公司的186处理器,提供了一个内部串口,编译器采用了BORLAND公司的BC31。在该系统中,调试代理模块作为一个独立的模块加入MAKEFILE文件(MAKEFILE是编译连接控制文件,用来控制将哪些模块以何种方式编译连接在一起),并在其连接部分加入/s控制参数(是连接时的一个控制选项,该选项作用是连接时产生详细符号表),以产生详细符号表,然后与应用程序部分在一起编译连接后运行。预编译模块为一在调试主机上独立运行的可执行程序,运行后它对编译后产生的符号表进行分析,得到调试信息文件,将该文件存放于调试主机。调试接口部分也为一在调试主机上独立运行的可执行程序。应用本发明提供的方法时将186处理器的串口与调试主机的串口相连,运行调试接口程序,就可以对嵌入式系统上的故障信息进行观察、修改,而不影响应用系统本身的运行。

Claims (4)

1、一种嵌入式软件辅助调试方法,包括以下步骤:
1)预编译模块(4)对编译时生成的符号表文件(3)进行扫描分析,生成调试信息文件(5),存放于调试主机;
2)嵌入式系统中的调试代理模块(2)在运行时记录故障信息,当对故障现场进行分析时,通过嵌入式系统的通讯口连接调试主机,故障信息经通讯链路送至调试主机的调试接口模块(6),由调试接口模块(6)显示;
3)调试接口模块(6)接收调试命令,经调试信息文件(5)解释后再送至调试代理模块(2),调试代理模块(2)将相应信息返回调试接口模块(6)显示;
所述的调试信息文件包含以下信息:全局变量名,静态变量名的字符串表示,各变量在内存中的起始物理地址,以及两者之间的对应关系。
2、如权利要求1所述的一种嵌入式软件辅助调试方法,其特征在于:所述的预编译模块(4)对符号表文件(3)进行扫描分析的过程是:所述的符号表文件(3)是在运行版本编译时生成的,经预编译模块(4)处理后生成调试信息文件(5)。
3、如权利要求1或2所述的一种嵌入式软件辅助调试方法,其特征在于:所述的调试代理模块(2)的工作过程是:接收调试接口模块(6)发送来的调试命令,并将相应的信息返回调试接口模块(6),并提供对应用程序(1)的故障信息输出接口。
4、如权利要求1或2所述的一种嵌入式软件辅助调试方法,其特征在于:调试接口模块(6)的工作流程如下:
调试接口模块一方面接收用户的调试命令,一方面处理调试代理模块返回的调试信息:
若调试接口模块接收到调试代理模块送来的调试信息,则对其中的控制符进行解释,根据控制符的类型确定调试信息的显示方向:显示器或磁盘,并显示;
接收到用户的调试命令后进行分析,若为故障现场的查询命令,则根据命令参数中的变量名,从调试信息文件中查询到相应变量的起始物理地址,然后将该地址随查询命令一起发送至调试代理模块,等待调试代理模块返回信息,对其中的控制符进行解释,根据控制符的类型确定调试命令的显示方向:显示器或磁盘,并显示;
若为故障现场的修改命令,则根据命令参数中的变量名,从调试信息文件中查询到相应变量的起始物理地址,然后将该地址和修改后的新值随查询命令一起发送至调试代理模块,等待调试代理模块返回信息,对其中的控制符进行解释,根据控制符的类型确定修改命令的显示方向:显示器或磁盘,并显示。
CNB991172604A 1999-11-30 1999-11-30 嵌入式软件辅助调试方法 Expired - Fee Related CN1139876C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB991172604A CN1139876C (zh) 1999-11-30 1999-11-30 嵌入式软件辅助调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB991172604A CN1139876C (zh) 1999-11-30 1999-11-30 嵌入式软件辅助调试方法

Publications (2)

Publication Number Publication Date
CN1286431A CN1286431A (zh) 2001-03-07
CN1139876C true CN1139876C (zh) 2004-02-25

Family

ID=5279896

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991172604A Expired - Fee Related CN1139876C (zh) 1999-11-30 1999-11-30 嵌入式软件辅助调试方法

Country Status (1)

Country Link
CN (1) CN1139876C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129408A (zh) * 2011-04-14 2011-07-20 电子科技大学 一种基于记录回放技术的嵌入式软件调试装置和方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100359485C (zh) * 2003-07-10 2008-01-02 华为技术有限公司 嵌入式系统的测试装置及测试方法
CN1312585C (zh) * 2003-10-08 2007-04-25 东南大学 嵌入式旋转机械智能状态监控与故障诊断装置
CN100353334C (zh) * 2004-08-06 2007-12-05 华为技术有限公司 软件跟踪方法及其系统
CN100340997C (zh) * 2004-09-04 2007-10-03 华为技术有限公司 一种应用程序的自动测试方法
CN100416512C (zh) * 2004-10-29 2008-09-03 上海环达计算机科技有限公司 嵌入式设备调试方法及其调试工具
CN100365590C (zh) * 2005-01-31 2008-01-30 浙江大学 在嵌入式系统模拟器上调试应用程序的方法
CN100386743C (zh) * 2005-10-31 2008-05-07 大唐微电子技术有限公司 一种嵌入式系统的调试方法及其系统
CN100416513C (zh) * 2005-11-15 2008-09-03 中兴通讯股份有限公司 一种嵌入式软件的编译调试方法
CN100405325C (zh) * 2006-08-21 2008-07-23 北京中星微电子有限公司 一种嵌入式软件装载调试方法及其系统
CN101154183B (zh) * 2006-09-29 2011-12-28 上海海尔集成电路有限公司 一种微控制器嵌入式在线仿真调试系统
CN101340317B (zh) * 2007-07-05 2011-05-25 中兴通讯股份有限公司 一种嵌入式软件调试的方法及其应用系统
CN101183330B (zh) * 2007-12-13 2010-05-19 东信和平智能卡股份有限公司 嵌入式系统的在线调试系统及其调试方法
CN102073581B (zh) * 2009-11-23 2015-09-23 新奥特(北京)视频技术有限公司 一种调试信息的输出方法及系统
US8656369B2 (en) 2010-05-24 2014-02-18 International Business Machines Corporation Tracing flow of data in a distributed computing application
US8572578B2 (en) * 2010-06-15 2013-10-29 Microsoft Corporation Script debugging
CN103257916A (zh) * 2012-02-15 2013-08-21 深圳市金蝶友商电子商务服务有限公司 一种调试信息显示方法及系统
CN103631706B (zh) * 2012-08-27 2018-09-04 腾讯科技(深圳)有限公司 一种浏览器测试方法和装置
CN103729283B (zh) * 2013-12-20 2017-02-15 小米科技有限责任公司 一种系统日志输出方法、装置及终端设备
CN103744762A (zh) * 2014-01-23 2014-04-23 浪潮电子信息产业股份有限公司 一种服务器新型调试卡的设计方法
CN103902456B (zh) * 2014-04-09 2017-03-15 中国工商银行股份有限公司 测试脚本处理装置、系统及方法
CN103984622B (zh) * 2014-04-18 2018-01-02 烽火通信科技股份有限公司 基于Linux的GPON ONU设备的日志管理方法及装置
CN105760289A (zh) * 2014-12-17 2016-07-13 中兴通讯股份有限公司 一种嵌入式系统的调试方法及装置
CN104881358B (zh) * 2015-05-28 2018-02-16 南京南瑞继保电气有限公司 一种程序仿真测试方法及系统
CN104899145A (zh) * 2015-06-20 2015-09-09 成都彬鸿科技有限公司 一种嵌入式系统调试方法
CN105138453B (zh) * 2015-08-12 2018-08-14 杭州数梦工场科技有限公司 一种程序调试方法和装置
CN108388510B (zh) * 2018-02-09 2021-09-24 福建升腾资讯有限公司 一种通过存储配置控制调试信息输出的方法及计算机设备
CN109376030B (zh) * 2018-11-09 2022-05-20 中国航空无线电电子研究所 用于捕获嵌入式操作系统异常的系统
CN113448866B (zh) * 2021-07-15 2022-07-05 杭州国芯科技股份有限公司 一种嵌入式软件开发辅助调试系统及调试方法
CN114124772A (zh) * 2021-11-05 2022-03-01 中国航空工业集团公司雷华电子技术研究所 一种基于VxWorks操作系统的网络调试方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129408A (zh) * 2011-04-14 2011-07-20 电子科技大学 一种基于记录回放技术的嵌入式软件调试装置和方法
CN102129408B (zh) * 2011-04-14 2013-09-25 电子科技大学 一种基于记录回放技术的嵌入式软件调试装置和方法

Also Published As

Publication number Publication date
CN1286431A (zh) 2001-03-07

Similar Documents

Publication Publication Date Title
CN1139876C (zh) 嵌入式软件辅助调试方法
US7367025B1 (en) Byte code modification for testing, debugging and/or monitoring of virtual machine based software
US5956479A (en) Demand based generation of symbolic information
CN100511177C (zh) 一种嵌入式系统的符号定位方法
US8566810B2 (en) Using database knowledge to optimize a computer program
CN103729288B (zh) 一种嵌入式多核环境下应用程序的调试方法
US7426723B1 (en) Classfile conversion into an organization of objects, and modification thereof, to effect bytecode modification
US6795962B1 (en) Machine independent debugger
EP3491527B1 (en) Debugging tool for a jit compiler
CN102902558B (zh) 项目脚本文件更新系统和方法、脚本文件合并方法和装置
US20100318978A1 (en) Registration method for supporting bytecode modification
US20080148219A1 (en) Process automation system and method having a hierarchical architecture with multiple tiers
US20080098369A1 (en) Process automation system and method employing property attachment techniques
CN1627254A (zh) 嵌入式系统的调试方法及其装置
US7836438B1 (en) Modified classfile registration with a dispatch unit that is responsible for dispatching invocations during runtime execution of modified bytecode
CN102411363A (zh) 矿用通风机运行状态在线监测系统和监测方法
CN103051711B (zh) 基于spice协议的嵌入式云终端系统的构建方法
US7895580B1 (en) Application tracing service employing different levels of precision for modifying bytecode
Pase Dynamic probe class library (dpcl): Tutorial and reference guide
Vetter et al. Techniques for high-performance computational steering
CN101192190A (zh) 一种对数字信号处理器执行调试查询命令的方法及装置
US20040098703A1 (en) Integration of multiple software tools under a single site
Vandewoude et al. A meta-model driven methodology for state transfer in component-oriented systems
CN116881174B (zh) 一种ecu应用软件闭环测试方法、装置、设备及存储介质
Russell et al. The {HotSpot™} Serviceability Agent: An {Out-of-Process}{High-Level} Debugger for a {Java™} Virtual Machine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: ZTE CO., LTD.

Free format text: FORMER NAME OR ADDRESS: SHENZHENG CITY ZTE CO., LTD.

CP03 Change of name, title or address

Address after: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Patentee after: ZTE Corporation

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Patentee before: Zhongxing Communication Co., Ltd., Shenzhen City

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040225

Termination date: 20131130