一种基于记录回放技术的嵌入式软件调试装置和方法制造方法及图纸

技术编号:6139476 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于记录回放技术的嵌入式软件调试装置和方法。包括至少两个宿主机和至少一个目标机,所述宿主机均包含调试器,其中的一个宿主机的调试器作为主调试器,其余宿主机的调试器作为从调试器。本发明专利技术的有益效果:本发明专利技术的装置和方法通过在目标机端添加一个记录模块,用于在调试过程中记录调试的过程,并生成记录数据。在宿主机与目标机之间增加一个记录模块,即“服务器”模块,用于存储管理调试记录数据。其它宿主机端的调试器可以通过调试服务器上的调试记录文件回放调试过程,可重现程序运行过程,达到了重现嵌入式调试过程与多机共享调试的目的。

【技术实现步骤摘要】

本专利技术属于计算机嵌入式
,尤其涉及嵌入式软件的调试

技术介绍
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统一般由嵌入式 微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。嵌入式操 作系统和用户的应用程序都属于嵌入式软件。嵌入式软件就是基于嵌入式系统设计的软 件,它也是计算机软件的一种,可细分成系统软件、支撑软件、应用软件三类,嵌入式软件是 嵌入式系统的重要组成部分。由于嵌入式系统具有专用性强、体积小、功耗低等特点,嵌入 式系统一般不会拥有丰富的系统资源,所以在嵌入式软件的开发过程中,通常采用交叉开 发的方式。所谓交叉开发,是指在程序的开发环境和运行环境互相分离的情况下进行开发 的一种方式。交叉开发的过程一般包括源码编写、交叉编译和交叉调试三个子过程。在嵌入式软件的交叉开发方式中开发环境往往建立在资源丰富的计算机上,这个 计算机叫做宿主机(Host)。在此开发环境中开发出的程序叫做目标程序,目标程序实际运 行环境叫作目标机(Target)。交叉开发过程中源码编写、交叉编译都是在宿主机上完成, 交叉调试需要宿主机与目标机共同完成。交叉调试是指调试器(Debugger)与目标程序 (Inferior)不处于同一台宿主机上,交叉调试也叫远程调试,与交叉调试对应的叫做本地 调试ο交叉调试过程中主要涉及了以下三个对象,宿主机上的调试器(Debugger)、目标 机上的调试代理(Stub)和目标程序。调试器通过串口或者网口等方式与调试代理建立通 信,调试代理完成对目标程序的运行控制和运行状态查看。现有的交叉调试方式一般是通过一个宿主机与一个目标机直接连接进行调试,采 用一对一的调试模式,并不能多机协作。再由于嵌入式系统中设备种类繁多、资源有限,软 件的错误往往具有随机性和不确定性,想在以后的调试中再重现软件运行错误比较困难。
技术实现思路
本专利技术的目的是为了解决现有技术在嵌入式软件调试过程中实现多机协作和重 现软件运行错误困难的不足,提出了。为了实现上述目的,本专利技术的技术方案一种基于记录回放技术的嵌入式软件调 试装置,包括至少两个宿主机和至少一个目标机,所述宿主机均包含调试器,其中的一个宿 主机的调试器作为主调试器,其余宿主机的调试器作为从调试器,其特征在于,所述宿主机 和目标机之间通过服务器连接并实现通信,包含有主调试器的宿主机通过服务器和目标机通信连接用于掌握主调试控制权 并负责通过服务器与目标机建立调试会话并进行调试以便在调试过程中产生调试记录数据;包含有从调试器的宿主机与服务器通信连接用于通过服务器获取主调试器产生 的调试记录数据以便在该宿主机上进行离线调试;服务器与目标机连接用于接收、存储和管理目标机产生的调试记录数据,服务器 与包含有主调试器的宿主机连接用于接收远程调试传输过来的命令,服务器与包含有从调 试器的宿主机连接用于调取目标机产生的调试记录数据以便进行离线调试;所述目标机与服务器连接并运行目标程序,所述调试代理控制目标机程序执行和 读取目标程序的进程空间,所述调试代理与主调试器进行调试会话并在调试过程中通过目 标机上的调试代理的记录模块产生调试记录数据。为了实现上述目的,本专利技术的另一技术方案一种基于记录回放技术的嵌入式软 件调试方法,包括如下步骤步骤A.宿主机的主调试器与目标机上的调试代理建立调试会话,进行调试,启动 调试过程记录功能;步骤B.调试代理中的记录模块将记录调试过程,并动态生成调试记录数据,然后 发送到服务器上;步骤C.从调试器向服务器请求获取调试记录数据,服务器检索所请求数据并传 输数据;步骤D.从调试器进行离线调试,离线调试过程中可设置断点、正逆向单步/全速 “执行”和查看内存与寄存器值。本专利技术的有益效果本专利技术的装置和方法通过在目标机端添加一个记录模块,用 于在调试过程中记录调试的过程,并生成记录数据。在宿主机与目标机之间增加一个记录 模块,即“服务器”模块,用于存储管理调试记录数据。其它宿主机端的调试器可以通过调 试服务器上的调试记录文件回放调试过程,可重现程序运行过程。其它宿主机在回放过程 中如果发现问题可通过申请并获取主调试控制权,与目标机建立新调试会话,达到了重现 嵌入式调试过程与多机共享调试的目的。附图说明图1是本专利技术的一种基于记录回放技术的嵌入式软件调试装置的系统结构示意 图。图2是本专利技术的一种基于记录回放技术的嵌入式软件调试方法的主流程图。图3是本专利技术的工作原理图。图4是本专利技术方法的调试记录文件生成的详细流程图。图5是本专利技术方法的离线调试与控制权切换的详细流程图。具体实施例方式为了使本专利技术的目的,技术方案和优点更加清楚明白,以下结合附图对本专利技术做 进一步说明。如图1所示,一种基于记录回放技术的嵌入式软件调试装置,包括至少两个宿主 机和至少一个目标机,所述宿主机均包含调试器,其中的一个宿主机的调试器作为主调试器,即图中“主调试器*1”的所表达的含义,其余宿主机的调试器作为从调试器,即图中“主 调试器*n”的所表达的含义,η为自然数,其特征在于,所述宿主机和目标机之间通过服务 器连接并实现通信,包含有主调试器的宿主机通过服务器和目标机通信连接用于掌握主调试控制权 并负责通过服务器与目标机建立调试会话并进行调试以便在调试过程中产生调试记录数 据;包含有从调试器的宿主机与服务器通信连接用于通过服务器获取主调试器产生 的调试记录数据以便在该宿主机上进行离线调试;服务器与目标机连接用于接收、存储和管理目标机产生的调试记录数据,服务器 与包含有主调试器的宿主机连接用于接收远程调试传输过来的命令,服务器与包含有从调 试器的宿主机连接用于调取目标机产生的调试记录数据以便进行离线调试;所述目标机与服务器连接并运行目标程序,所述调试代理控制目标机程序执行和 读取目标程序的进程空间,所述调试代理与主调试器进行调试会话并在调试过程中通过目 标机上的调试代理的记录模块产生调试记录数据。如图2所示,一种基于记录回放技术的嵌入式软件调试方法,包括如下步骤步骤Α.宿主机的主调试器与目标机上的调试代理建立调试会话,进行调试,启动 调试过程记录功能;步骤A的详细过程包括步骤Al.启动调试会话主调试器向目标机请求调试,主调试器与目标机上的调 试代理建立通信,调试会话建立;步骤Α2.启动记录功能在记录功能启动时,调试代理中的记录模块首先获取当 前目标程序的进程状态,并生成一个进程快照,该进程快照被叫作初始状态进程快照,然后 将其发送到服务器上;上述进程快照属于快照技术的一种应用。快照技术的定义是关于指定数据集合 的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快 照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。进程快照是快照技术 在诸多方面的应用中的一种实际应用类型,进程快照是指在程序正常运行时,周期性地设 置快照,通过把进程信息保存到硬盘。当进程发生错误时,就可以通过检查点信息来实现进 程的回卷。这样可以避免从头开始执行进程,因此极大节省了运行时间,提高了效率。本实施例中并非周期性的设置快照,而是在某一个时间点主动本文档来自技高网
...

【技术保护点】
1.一种基于记录回放技术的嵌入式软件调试装置,包括至少两个宿主机和至少一个目标机,所述宿主机均包含调试器,其中的一个宿主机的调试器作为主调试器,其余宿主机的调试器作为从调试器,其特征在于,所述宿主机和目标机之间通过服务器连接并实现通信,包含有主调试器的宿主机通过服务器和目标机通信连接用于掌握主调试控制权并负责通过服务器与目标机建立调试会话并进行调试以便在调试过程中产生调试记录数据;包含有从调试器的宿主机也通过服务器和目标机通信连接用于掌握主调试控制权并负责通过服务器获取主调试器产生的调试记录数据以便在该宿主机上进行离线调试;服务器与目标机连接用于接收、存储和管理目标机产生的调试记录数据,服务器与包含有主调试器的宿主机连接用于接收远程调试传输过来的命令,服务器与包含有从调试器的宿主机连接用于调取目标机产生的调试记录数据以便进行离线调试;所述目标机与服务器连接以便运行目标程序,所述目标程序通过目标机上的调试代理与主调试器进行调试会话并在调试过程中通过目标机的记录模块产生调试记录数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:詹瑾瑜桑楠程佳
申请(专利权)人:电子科技大学
类型:发明
国别省市:90

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

1