CN102722440A - 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 - Google Patents

一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 Download PDF

Info

Publication number
CN102722440A
CN102722440A CN2012101852245A CN201210185224A CN102722440A CN 102722440 A CN102722440 A CN 102722440A CN 2012101852245 A CN2012101852245 A CN 2012101852245A CN 201210185224 A CN201210185224 A CN 201210185224A CN 102722440 A CN102722440 A CN 102722440A
Authority
CN
China
Prior art keywords
function unit
function
debugging
embedded system
debugged
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.)
Granted
Application number
CN2012101852245A
Other languages
English (en)
Other versions
CN102722440B (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 CN201210185224.5A priority Critical patent/CN102722440B/zh
Publication of CN102722440A publication Critical patent/CN102722440A/zh
Application granted granted Critical
Publication of CN102722440B publication Critical patent/CN102722440B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种嵌入式系统可执行代码的调试装置,其包括:被调试功能函数化及追踪模块,用于将每一个原子的被调试功能单元在代码中定义为函数单元,在每个函数单元中配置追踪函数;映射表生成模块,用于使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,建立符号和函数单元相互对应的对应表;调试方式配置及数据记录模块,用于接收调试指令,监测或者运行被调试对象,保存运行信息到数据结构单元;调试信息获取模块,用于根据调试指令涉及的函数单元,查找符号和函数单元相互对应表,得到对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。本发明加强了可执行代码的可调式性和使用灵活性。

Description

一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
技术领域
本发明属于嵌入式系统调试技术领域,尤其涉及一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统。
背景技术
嵌入式系统是执行专用功能并被内部计算机控制的设备或者系统,是现代科学的多学科相互融合的产品。它以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,并且引入了传感器技术,甚至关联到了互联网技术的应用。嵌入式系统的特点是,软件以固化态出现,也称为固件(firmware),固件一旦设计完成就很难更改,维护成本较高;硬件的设计具有很强的针对性,可靠性高,成本低,体积小,功耗少,这使得嵌入式系统具有良好的应用前景。
嵌入式系统不仅和一般的PC机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一,简单,且在兼容性方面要求不高,但是在大小,成本方面限制较多。嵌入的目的主要是用智能化提高宿主设备的功能。嵌入式系统可大可小,位数可多可少,完全由能满足宿主设备的功能要求来决定。
目前嵌入式系统的应用已经十分广泛。小到手机、智能卡、汽车、电梯、厨房设备、电视、录像机以及娱乐系统,大到工业机器人、医药设备、电话系统、卫星、飞行系统等都有嵌入式系统的应用。
嵌入式系统在硬件构架上以嵌入式处理器为中心,配置存储器、输入输出(Input/Output,简称“I/O”)设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(Application Programming Interface,简称“API”),向下屏蔽具体硬件特性的板级支持包(Board Support Package,简称“BSP”)。软件和硬件紧密配合,协调工作,共同完成系统预定的功能。
嵌入式系统调试时,主机上运行的集成开发调试工具,也即调试器,通过仿真器和目标机相连。仿真器出来宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过接口,比如边缘扫描接口(JTAG/IEEE1149.1)等,和目标机相连。
在嵌入式系统研发过程中,设备使用开发工具的调试器进行程序调试是重要问题解决和故障定位手段。但在有些情况下,调试器定位会受到限制,比如:系统已经发货在线运行,用户现场不能或者不具备使用调试器的环境,而又必须在现场定位解决问题,那么,是无法进行函数级别的在线调试和故障定位的;或者,对于时间要求严格的系统,调试模式下工作和正常程序运行模式下工作是有很大差别的,必须在非调试模式下定位程序运行问题;或者对于多任务系统下的被调用函数的复杂调用关系,调试器只能断点而无法判断上级调用任务关系,等等。
另外,虽然嵌入式设备都有网管进行某些功能的上报和记录,但对于某些功能的中间执行过程或者中间执行结果无法支持获取,和此相关的嵌入式系统问题定位通常会依靠日志功能,通过获得日志文件完成系统异常的分析及错误原因定位,日志的重要之处在于记录随机发生的不可预知事件,是现有已知流程运行的必要补充及定位手段。但当前系统中的日志功能,灵活性很差,增加新的监测的内容,都需要修改代码重新编译后重新加载执行才能获得数据,而对于程序原先没有计划而感兴趣的内容,如果没有间接手段,就无法获得执行信息。另外对于进入异常分支记录,功能执行流程关系等全局信息更是无能为力。
发明内容
本发明所要解决的技术问题是:现有技术可执行代码的可调式性和使用灵活性较差等问题。
为解决上述技术问题,本发明采用如下技术方案:
本发明提供一种嵌入式系统可执行代码的调试装置,其包括:
被调试功能函数化及追踪模块,用于将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象,并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪;
映射表生成模块,用于使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表;
调试方式配置及数据记录模块,用于接收调试指令,检测或者运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元;
调试信息获取模块,用于根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。
在上述一种嵌入式系统可执行代码的调试装置中,所述函数单元为被调试对象的代码调试层次的最小单元。
在上述一种嵌入式系统可执行代码的调试装置中,所述映射表生成模块进一步将函数单元名称、参数及调用函数单元时动态生成的对应于函数单元的编号注册到数据结构单元中。
本发明还提供一种嵌入式系统,其包括上述嵌入式系统可执行代码的调试装置,还包括:
与所述调试装置相互连接的,发送调试指令,接收并显示所述调试信息获取模块获取的被调试对象的函数单元的运行信息的维护终端。
在上述一种嵌入式系统中,还包括:
分别与所述调试装置、维护终端相互连接的,对所述调试信息获取模块获取的被调试对象的函数单元的运行信息进行处理和格式转换的格式输出转换模块。
本发明还提供一种嵌入式系统的调试方法,其包括:
将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象;并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪;
使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表;
接收调试指令,监测或者运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元;
根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。
在上述一种嵌入式系统的调试方法中,所述函数单元为被调试对象的代码调试层次的最小单元。
在上述一种嵌入式系统的调试方法中,所述注册到数据结构单元中的步骤进一步包括将函数单元名称、参数及调用函数单元时动态生成的对应于函数单元的编号注册到数据结构单元中。
在上述一种嵌入式系统的调试方法中,还包括:
显示获取的被调试对象的函数单元的运行信息。
在上述一种嵌入式系统的调试方法中,在所述显示获取的被调试对象的函数单元的运行信息的步骤之前,还包括:
对获取的被调试对象的函数单元的运行信息进行处理和格式转换。
本发明的有益效果在于:实现在可执行程序下进行代码级别的调试和函数单元相关信息处理记录和分析,加强了可执行代码的可调式性和使用灵活性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一种嵌入式系统的调试装置的实施例模块示意图。
图2为本发明一种嵌入式系统的调试方法的实施例流程示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,其是本发明一种嵌入式系统的调试装置的实施例模块示意图。
本发明提供一种嵌入式系统的调试装置,其包括:被调试功能函数化及追踪模块11、映射表生成模块12、调试方式配置及数据记录模块13,以及调试信息获取模块14。其中,被调试功能函数化及追踪模块11、映射表生成模块12、调试方式配置及数据记录模块13,以及调试信息获取模块14依次连接,且可以通过有线的形式进行连接,也可以通过无线的形式进行连接,也可以通过有线和无线并用的方式进行连接。
被调试功能函数化及追踪模块11,用于将每一个最小被调试功能单元配置成函数单元,所述函数单元组成被调试对象。在代码实现阶段,所有具有意义的值和功能都以函数单元的方式定义,整个代码是函数单元的集合。所有的被调试对象定义为由函数单元组成或者本身就是某个函数单元。或者说,被调试功能函数化及追踪模块,用于将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象。并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪。具体地,功能单元函数化,并将追踪函数置入其中。也即,将所有具有特定含义的功能单元,都作为函数来实现,也就是说在代码中,对于有检测意义的值,无论多小,都采用函数单元来定义,相当于函数单元就是程序中具有意义的最小单元,也就是代码调试层次的最小单元。
映射表生成模块12,用于使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表。就是,在嵌入式系统程序启动或新分支运行过程中随时进行被支持的功能单元的动态自动初始化,在每个函数单元中添加追踪函数,只要调用过就会注册到数据结构单元中,重复调用的不必反复注册。注册过程就是将某种符号和功能对应的过程,也就是注册之后就可以使用符号来代表这个函数单元,同时还会对应于符号获得数据结构单元。所述符号可以为全局符号。
调试方式配置及数据记录模块13,用于接收调试指令,监测或者运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元。
在上述一种嵌入式系统可执行代码的调试装置中,所述追踪函数的作用在于,存在于每个函数单元中,在嵌入式系统可执行代码的调试装置中映射表生成模块12、调试方式配置及数据记录模块13工作过程中,代码执行到各函数单元,调用对应的追踪函数,在该嵌入式系统可执行代码的调试装置数据结构中更新各函数单元执行轨迹、调用关系及内部数据。
调试信息获取模块14,用于根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。其中,以符号作为追踪参数,在数据结构单元中获取被调试对象的函数单元的运行信息。
本发明还提供一种嵌入式系统,所述嵌入式系统包括前述的一种嵌入式系统的调试装置,进一步包括:
与所述调试装置相互连接的,发送调试指令,接收并显示所述调试装置的调试信息获取模块14获取的被调试对象的函数单元的运行信息的维护终端;以及
分别与所述调试装置、维护终端相互连接的,对所述调试信息获取模块14获取的被调试对象的函数单元的运行信息进行处理和格式转换的格式输出转换模块。
其中,维护终端至少由文本源代码、用户界面和通讯系统组成。
格式输出模块对获取的被调试对象的函数单元的运行信息进行处理,包括在参数配置状态下,获得相关的函数单元(或者函数单元集合)信息,依靠运行数据结构单元中记录的上下文信息及特征标识进行和软件相关的函数调用及特定功能数据信息计算,模拟调试装置功能和日志功能。
另外,格式输出模块可以设置在调试装置,或者维护终端中,也可以独立存在。
为了详细描述上述一种嵌入式系统的调试装置的工作机理,请一并参考图2,其是本发明一种嵌入式系统的调试方法的实施例流程示意图。
本发明提供一种嵌入式系统的调试方法,其包括如下步骤:
步骤S1、将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象,并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪;
具体地,将功能单元函数化,并将追踪函数置入其中。也即,将所有具有特定含义的功能单元,都作为函数来实现,也就是说在代码中,对于有检测意义的值,无论多小,都采用函数单元来定义,相当于函数单元就是程序中具有意义的最小单元,也就是代码调试层次的最小单元。
有意义的单元用函数来代替局部变量,因为局部变量在程序运行中随时释放无法跟踪,而函数的调用是有上下文及入口和出口的,虽然程序运行过程中也会被释放和重新调用,但调试时可以在每次函数调用过程中完成追踪,追踪可以但不限于使用在数据结构单元中给函数层次编号的方式。
步骤S2、使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表;
映射表生成模块12将函数单元动态注册到数据结构单元中,建立符号和函数单元的对应表。就是,在嵌入式系统程序启动或新分支运行过程中随时进行被支持的函数单元的动态自动初始化,在每个函数单元中添加追踪函数,只要调用过就会注册到数据结构单元中,重复调用的不必反复注册。注册过程就是将某种全局符号和函数单元对应的过程,也就是注册之后就可以使用符号来代表这个函数单元,同时还会对应于符号获得数据结构单元。符号可以使用任何能够相互区分的全局量,可以但不限于使用编号,用编号代表功能函数的好处就是修改代码不需要手工给函数添加编号,修改代码无需考虑函数编号变化,另外就是编号占用内存空间小。另外,全局变量和局部静态变量也可以注册到数据结构单元的编号和项目列表中进行跟踪。
步骤S3、接收调试指令,检测或者运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元;
调试方式配置及数据记录模块13在程序运行过程中,对于各个函数单元运行情况进行记录并更新到数据结构单元中。
在上述一种嵌入式系统可执行代码的调试装置中,所述追踪函数的作用在于,存在于每个函数单元中,在嵌入式系统可执行代码的调试装置中映射表生成模块12、调试方式配置及数据记录模块13工作过程中,代码执行到各函数单元,调用对应的追踪函数,在该嵌入式系统可执行代码的调试装置数据结构中更新各函数单元执行轨迹、调用关系及内部数据。
步骤S4、根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息;
为了实现执行程序在线调试或者日志数据记录,调试信息获取模块14首先获得当前嵌入式系统执行程序的符号和函数单元相互对应的对应表,参考源代码,将希望调试的函数单元找到本次动态分配的符号,就可以凭借符号作为追踪参数来获得对应功能的调试信息。另外,调试都是有目的性,调试装置按照被选择的函数单元(或者函数单元集合)及选择的调试参数向调试装置外部的维护终端上报反馈信息,并且维护终端可以指定反馈的数据内容及显示格式。同时可以扩展设置函数单元的禁止或者使能功能来简化信息复杂度。
步骤S5、对获取的被调试对象的函数单元的运行信息进行处理和格式转换;
格式输出转换模块在参数配置状态下,获得函数单元(或者函数单元集合)信息,依靠运行数据结构单元中记录的上下文信息及特征标识进行和软件相关的函数调用及特定功能数据信息计算,模拟调试装置功能和日志功能。
步骤S6、显示获取的被调试对象的函数单元的运行信息。
维护终端对经过处理以及格式转换的被调试对象的函数单元的运行信息,进行接收和显示。
为了找到现网运行设备长期运行期间出现的小概率随机错误的根本原因,要求监测某功能相关的多个中间状态的执行情况,利用采用本发明所提供的一种嵌入式系统的调试装置、调试方法的日志监测项目动态生成机制,并且提供功能数据的长时间无监控采集,具有如下步骤:
首先,将所有具有特定含义的功能单元,都作为函数来实现,也就说对于有意义的项目都采用函数单元来封装,这样本来也符合程序设计思想的,有意义的单元不要使用局部变量来获取;
其次,在程序初始化过程中及函数调用过程中随时进行日志支持项目的动态自动初始化,在每个函数单元中拷贝添加注册函数,只要调用过就会注册到日志链表中,重复调用的不必反复注册。注册包括函数单元名称、参数并动态生成对应函数单元的编号。用编号代表函数的好处就是修改程序不需要手工给函数添加编号,修改程序无需考虑函数编号变化,另外就是在日志程序运行中使用编号空间使用小,记录的日志文件占用内存空间小。全局变量和局部静态变量也可以注册到编号和项目列表中进行跟踪。
再者,生成日志,其中,生成的日志是由编号和数据组成,占用空间小,因为日志是历史信息,需要采集到维护终端(主机)来分析,所以解析函数不作为日志程序运行在设备上,而是在维护终端上使用脚本建立日志解析可视化工具。先动态一次获取本程序中编号和函数对应表,然后对日志数据进行直接解析,效率高,速度快。
接着,可以根据编号和函数单元相互对应的对应表,也就是编号和项目的对应表动态启动和停止对应项目的日志记录功能,对应表中没有的项目说明分支无法有效运行。
然后,可以参照源代码,并根据获得的编号和函数对应表,来跟踪局部功能的执行结果,实现部分应用程序在线Debug功能,这是目前的应用程序是不具有的。
上述日志项目跟踪及查找功能是独立运行与所有函数之外的,不会对函数本身运行结果产生影响。
最后,选择需要监控的函数单元对应的编号作为跟踪参数,通过维护终端下发到调试装置中,设置每次采样时间,采样内容,调用次数,访问错误记录,相关错误功能跟踪等。由通信接口将信息获得反馈到维护终端,一旦出现小概率随机故障,将信息进行全面分析来定位。
另外,采用本发明所提供的一种嵌入式系统的调试装置、调试方法,还可以实现可执行程序在线调试功能。
根据前述分析,如果支持可执行程序在线调试功能,维护终端配置需要跟踪的功能函数,运行次数和间隔等调试信息输出条件即可。复杂调试都可以通过简单功能的组合来完成。
此外,采用本发明所提供的一种嵌入式系统的调试装置、调试方法,还可以记录函数调用轨迹序列即函数层次调用关系。
实现对于指定函数可以直接在应用程序模式下显示其被调用的轨迹,也就是层次关系,对于是否走入异常分支的定位和记录都是大有帮助的。同时,对于多任务操作系统,函数运行和调用关系的跳转,一直都是比较难以理解和把握的方面,如果可以在线获得函数运行及跳转关系,就可以建立起整个程序系统运行的时序图。
(1)、对于多层次程序调用必须是有始有终的,否则层次的包含关系无法体现,因此将循环运行任务函数作为层次的起点,指定需要观察的函数单元作为层次的终点。对于单次执行的函数单元,比如下发命令而启动的函数单元,作为层次的起点,同样指定需要观察的函数单元作为层次终点。
(2)、函数单元调用起点难以把握,很多情况下对于同一个指定需要观察的函数单元,可能起点来源于多个函数单元,也就是被其他不同函数单元调用,从起点是不能准确描述函数单元调用层次轨迹的,采用的方法就是从指定需要观察的函数单元出发,依据函数单元调用返回时的出栈数据反向寻找调用此函数单元的上层函数单元,依次向外延伸,直到到达上面提到的起点函数单元为止。
相较于现有技术,本发明的有益效果是:实现在可执行程序下进行代码级别的调试和函数单元执行流程、频率、调用关系、执行计数等信息处理和显示。同时,还提供无需重新编译和加载前提下的,设备功能动态的日志记录和分析。可以通过标准化的程序编写方式实现非调试装置在线调试和功能监测动态添加,极大的增加可执行代码的可调式性和使用灵活性。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (10)

1.一种嵌入式系统可执行代码的调试装置,其特征在于,包括:
被调试功能函数化及追踪模块,用于将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象,并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪;
映射表生成模块,用于使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表;
调试方式配置及数据记录模块,用于接收调试指令,检测或者运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元;
调试信息获取模块,用于根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。
2.根据权利要求1所述的一种嵌入式系统可执行代码的调试装置,其特征在于,所述函数单元为被调试对象的代码调试层次的最小单元。
3.根据权利要求1所述的一种嵌入式系统可执行代码的调试装置,其特征在于,所述映射表生成模块进一步将函数单元名称、参数及调用函数单元时及动态生成的对应于函数单元的编号注册到数据结构单元中。
4.一种嵌入式系统,其特征在于,包括如权利要求1至3任一项所述的一种嵌入式系统可执行代码的调试装置,还包括:
与所述调试装置相互连接的,发送调试指令,接收并显示所述调试信息获取模块获取的被调试对象的函数单元的运行信息的维护终端。
5.根据权利要求4所述的一种嵌入式系统,其特征在于,还包括:
分别与所述调试装置、维护终端相互连接的,对所述调试信息获取模块获取的被调试对象的函数单元的运行信息进行处理和格式转换的格式输出转换模块。
6.一种嵌入式系统的调试方法,其特征在于,包括:
将每一个原子的被调试功能单元在代码中以函数实现,定义为函数单元,所述函数单元组成被调试对象,并且,在每个函数单元中配置追踪函数,追踪函数用于可执行代码调试中函数单元执行轨迹、调用关系及数据的追踪;
使用追踪函数,在函数单元被首次调用时,注册到数据结构单元中,使用符号代表函数单元,建立符号和函数单元相互对应的对应表;
接收调试指令,运行被调试对象,依靠代码执行过程中各函数单元的追踪函数,以符号及数据的形式记录被调试对象的函数单元的运行信息,保存到数据结构单元;
根据调试指令涉及的函数单元,查找符号和函数单元相互的对应表,得到调试指令涉及的函数单元对应的符号,根据得到的符号在数据结构单元中获取被调试对象的函数单元的运行信息。
7.根据权利要求6所述的一种嵌入式系统的调试方法,其特征在于,所述函数单元为被调试对象的代码调试层次的最小单元。
8.根据权利要求6所述的一种嵌入式系统的调试方法,其特征在于,所述注册到数据结构单元中的步骤进一步包括将函数单元名称、参数及调用函数单元时动态生成的对应于函数单元的编号注册到数据结构单元中。
9.根据权利要求6所述的一种嵌入式系统的调试方法,其特征在于,还包括:
显示获取的被调试对象的函数单元的运行信息。
10.根据权利要求9所述的一种嵌入式系统的调试方法,其特征在于,在所述显示获取的被调试对象的函数单元的运行信息的步骤之前,还包括:
对获取的被调试对象的函数单元的运行信息进行处理和格式转换。
CN201210185224.5A 2012-06-07 2012-06-07 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 Expired - Fee Related CN102722440B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210185224.5A CN102722440B (zh) 2012-06-07 2012-06-07 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210185224.5A CN102722440B (zh) 2012-06-07 2012-06-07 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统

Publications (2)

Publication Number Publication Date
CN102722440A true CN102722440A (zh) 2012-10-10
CN102722440B CN102722440B (zh) 2017-03-15

Family

ID=46948214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210185224.5A Expired - Fee Related CN102722440B (zh) 2012-06-07 2012-06-07 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统

Country Status (1)

Country Link
CN (1) CN102722440B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389940A (zh) * 2013-07-15 2013-11-13 厦门亿联网络技术股份有限公司 大规模函数功能的测试方法
CN104057452A (zh) * 2014-06-30 2014-09-24 西北工业大学 类人机器人通用动作调试方法
CN104268074A (zh) * 2014-09-05 2015-01-07 北京广利核系统工程有限公司 一种基于dcs系统应用软件在线调试方法
CN104375940A (zh) * 2014-11-28 2015-02-25 浪潮电子信息产业股份有限公司 一种对javaScript文件的调试方法
CN104461905A (zh) * 2014-12-30 2015-03-25 东信和平科技股份有限公司 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统
CN104503738A (zh) * 2014-11-28 2015-04-08 华为技术有限公司 参数传递方法、单板加载器、单板和单板仿真器
CN106200445A (zh) * 2015-05-06 2016-12-07 西门子工厂自动化工程有限公司 逻辑控制器的调试方法
CN106970884A (zh) * 2017-03-16 2017-07-21 青岛海信电器股份有限公司 应用于安卓系统运行层处理串口命令的方法及装置
CN107342880A (zh) * 2016-04-29 2017-11-10 中兴通讯股份有限公司 异常信息采集方法及系统
CN107735791A (zh) * 2015-07-15 2018-02-23 Arm 有限公司 安全模式状态的数据访问追踪
CN108089971A (zh) * 2017-11-27 2018-05-29 上海华元创信软件有限公司 基于嵌入式实时系统的日志服务方法和系统
CN108924080A (zh) * 2018-04-20 2018-11-30 福州芝麻智能科技有限公司 一种伪函数通讯方法
CN108932201A (zh) * 2018-07-16 2018-12-04 北京中科网威信息技术有限公司 申威防火墙报文轨迹追踪的方法及装置
CN109240917A (zh) * 2018-08-13 2019-01-18 山东中创软件工程股份有限公司 一种日志管理方法及相关装置
CN109344083A (zh) * 2018-11-05 2019-02-15 郑州云海信息技术有限公司 一种程序调试方法、装置、设备及可读存储介质
WO2019227708A1 (zh) * 2018-05-31 2019-12-05 平安科技(深圳)有限公司 测试案例的在线调试装置、方法及计算机可读存储介质
CN110597763A (zh) * 2018-05-25 2019-12-20 杭州海康威视数字技术股份有限公司 一种函数索引表的生成方法及装置
CN111427780A (zh) * 2020-03-10 2020-07-17 畅捷通信息技术股份有限公司 函数信息的追踪方法、装置和计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278790A (ja) * 2001-03-19 2002-09-27 Yaskawa Electric Corp デバッグ情報獲得方法
CN100351785C (zh) * 2003-12-10 2007-11-28 华为技术有限公司 嵌入式系统的调试方法
CN101788949B (zh) * 2010-03-10 2015-01-28 中兴通讯股份有限公司 一种实现嵌入式系统函数监控的方法及装置
KR101188412B1 (ko) * 2010-11-03 2012-10-05 주식회사 케피코 소프트웨어의 함수 추적을 통한 디버깅 방법

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389940B (zh) * 2013-07-15 2016-03-30 厦门亿联网络技术股份有限公司 大规模函数功能的测试方法
CN103389940A (zh) * 2013-07-15 2013-11-13 厦门亿联网络技术股份有限公司 大规模函数功能的测试方法
CN104057452A (zh) * 2014-06-30 2014-09-24 西北工业大学 类人机器人通用动作调试方法
CN104268074A (zh) * 2014-09-05 2015-01-07 北京广利核系统工程有限公司 一种基于dcs系统应用软件在线调试方法
CN104375940A (zh) * 2014-11-28 2015-02-25 浪潮电子信息产业股份有限公司 一种对javaScript文件的调试方法
CN104503738A (zh) * 2014-11-28 2015-04-08 华为技术有限公司 参数传递方法、单板加载器、单板和单板仿真器
CN104503738B (zh) * 2014-11-28 2018-03-06 华为技术有限公司 参数传递方法、单板加载器、单板和单板仿真器
CN104461905A (zh) * 2014-12-30 2015-03-25 东信和平科技股份有限公司 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统
CN106200445A (zh) * 2015-05-06 2016-12-07 西门子工厂自动化工程有限公司 逻辑控制器的调试方法
CN107735791A (zh) * 2015-07-15 2018-02-23 Arm 有限公司 安全模式状态的数据访问追踪
CN107735791B (zh) * 2015-07-15 2021-09-07 Arm 有限公司 安全模式状态的数据访问追踪
CN107342880A (zh) * 2016-04-29 2017-11-10 中兴通讯股份有限公司 异常信息采集方法及系统
CN107342880B (zh) * 2016-04-29 2021-06-08 中兴通讯股份有限公司 异常信息采集方法及系统
CN106970884A (zh) * 2017-03-16 2017-07-21 青岛海信电器股份有限公司 应用于安卓系统运行层处理串口命令的方法及装置
CN108089971A (zh) * 2017-11-27 2018-05-29 上海华元创信软件有限公司 基于嵌入式实时系统的日志服务方法和系统
CN108089971B (zh) * 2017-11-27 2021-03-16 上海华元创信软件有限公司 基于嵌入式实时系统的日志服务方法和系统
CN108924080A (zh) * 2018-04-20 2018-11-30 福州芝麻智能科技有限公司 一种伪函数通讯方法
CN110597763A (zh) * 2018-05-25 2019-12-20 杭州海康威视数字技术股份有限公司 一种函数索引表的生成方法及装置
CN110597763B (zh) * 2018-05-25 2022-06-03 杭州海康威视数字技术股份有限公司 一种函数索引表的生成方法及装置
WO2019227708A1 (zh) * 2018-05-31 2019-12-05 平安科技(深圳)有限公司 测试案例的在线调试装置、方法及计算机可读存储介质
CN108932201A (zh) * 2018-07-16 2018-12-04 北京中科网威信息技术有限公司 申威防火墙报文轨迹追踪的方法及装置
CN109240917A (zh) * 2018-08-13 2019-01-18 山东中创软件工程股份有限公司 一种日志管理方法及相关装置
CN109344083A (zh) * 2018-11-05 2019-02-15 郑州云海信息技术有限公司 一种程序调试方法、装置、设备及可读存储介质
CN109344083B (zh) * 2018-11-05 2022-07-08 郑州云海信息技术有限公司 一种程序调试方法、装置、设备及可读存储介质
CN111427780A (zh) * 2020-03-10 2020-07-17 畅捷通信息技术股份有限公司 函数信息的追踪方法、装置和计算机可读存储介质
CN111427780B (zh) * 2020-03-10 2024-05-31 畅捷通信息技术股份有限公司 函数信息的追踪方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
CN102722440B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN102722440A (zh) 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN100386743C (zh) 一种嵌入式系统的调试方法及其系统
US7512933B1 (en) Method and system for associating logs and traces to test cases
CN102375778A (zh) 实现数字信号处理器自动测试的方法及系统
CN101924656A (zh) 一种基于动态配置的网络设备cli实现方法和装置
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
CN103257852B (zh) 一种分布式应用系统的开发环境搭建的方法和装置
CN105653946A (zh) 基于组合事件行为触发的Android恶意行为检测系统及其检测方法
CN105094910A (zh) 一种驱动函数用户态调试系统和方法
CN1318976C (zh) 软件测试方法及其系统
CN109542444B (zh) Java应用的监控方法、装置、服务器和存储介质
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
US10387124B2 (en) System and method for creating domain specific language
CN114817028A (zh) 一种基于软件开发平台中多目标交叉调试系统
CN111382044A (zh) 性能瓶颈的定位方法、定位装置、电子设备及存储介质
CN113220597A (zh) 测试方法、测试装置、电子设备及存储介质
CN115833964A (zh) 双模通信模块的性能测试方法和性能测试系统
CN117041111A (zh) 车云功能测试方法、装置、电子设备及存储介质
CN102799528A (zh) 一种用于电路板级测试的脚本调试方法、装置及其系统
CN112199270B (zh) 一种程序测试方法、装置、设备及介质
Dantas et al. Towards aspect-oriented programming for context-aware systems: A comparative study
CN114047923A (zh) 错误代码定位方法、装置、存储介质以及电子设备
CN113010434A (zh) 一种实现轻量级应用埋点的系统和方法
CN103678054B (zh) 用于BACnet设备的测试方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170315

Termination date: 20200607