一种基于多核嵌入式系统的多级调试方法技术方案

技术编号:27877309 阅读:14 留言:0更新日期:2021-03-31 00:57
本申请提供一种基于多核嵌入式系统的多级调试方法,所述多核嵌入式系统包括宿主机和目标机;所述多级调试方法包括:根据预设的调试配置和目标机状态,启动宿主机和目标机的调试;宿主机向目标机发送指令,以便目标机进行交叉调试操作;如果当前调试会话的状态处于分区级调试或者任务级调试,则通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换;如果当前调试会话的状态处于系统级调试,则通过调试图形界面进行系统级调试向分区级调试切换,或者,系统级调试向任务级调试切换。

【技术实现步骤摘要】
一种基于多核嵌入式系统的多级调试方法
本申请涉及计算机领域,具体涉及一种基于多核嵌入式系统的多级调试方法。
技术介绍
软件调试器帮助很多嵌入式计算机程序员找到嵌入式计算机程序中的错误。这些错误通常叫做“bugs”。最通常的bug是嵌入式计算机程序没有做它支持做的。对程序员来说,寻找bug通常是一项棘手的任务。嵌入式软件调试器能被用于确定问题原因,然而传统的嵌入式软件调试器具有能力限制,往往只能够调试一种嵌入式计算机程序,例如用户进程,又或是嵌入式系统中的用户任务。一个任务调试时,其它任务的运行不受影响(无共享资源、无同步关系)。在系统中还有系统服务程序、分区程序(满足ARINC653标准要求的嵌入式操作系统具有分区)、中断处理程序、异常处理程序等,这些程序也有调试的需求(操作系统开发人员,设备驱动开发人员需要调试这些程序,应用开发人员有时也会从了解系统的角度去调试这些程序),但是这些程序往往不能通过提供给用户的软件调试工具进行调试,只能通过硬件仿真器进行调试。硬件仿真器存在价格高,连接不方便等问题,不适合普通用户使用。
技术实现思路
本申请提供一种基于多核嵌入式系统的多级调试方法,用于找出多核嵌入式操作系统的系统程序、任务、分区程序,以便于找出程序中的bug。本申请提供一种基于多核嵌入式系统的多级调试方法,所述多核嵌入式系统包括宿主机和目标机;所述宿主机端包括调试图形界面、调试管理器、交叉调试器、目标机服务器、宿主机OS;所述目标机端包括系统级通信代理、系统级调试代理、任务级通信代理、公共调试代理、任务级调试代理、分区级调试代理;所述多级调试方法包括:根据预设的调试配置和目标机状态,启动宿主机和目标机的调试;宿主机向目标机发送指令,以便目标机进行交叉调试操作;如果当前调试会话的状态处于分区级调试或者任务级调试,则通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换;如果当前调试会话的状态处于系统级调试,则通过调试图形界面进行系统级调试向分区级调试切换,或者,系统级调试向任务级调试切换。优选的,所述根据预设的调试配置和目标机状态,启动宿主机和目标机的调试,具体包括:如果目标机服务器未连接目标机,调试图形界面控制目标机服务器与目标机建立通信连接;调试图形界面根据当前目标机状态创建调试配置;调试图形界面根据调试配置通过调试管理器创建调试会话;调试图形界面通过调试管理器启动调试会话。优选的,所述宿主机向目标机发送指令,以便目标机进行交叉调试操作,具体包括:调试图形界面接收用户输入的调试操作指令,进行调试相关操作;调试图形界面通过调试控制管理将调试操作转换为单个或多个交叉调试器命令,然后逐一发送给交叉调试器;交叉调试器处理命令,和目标机程序调试直接相关的命令将被转换为单个或多个命令发送给目标机服务器,和目标机程序调试不直接相关的命令,处理后组织回复,回复给调试控制管理;目标机服务器再转换命令包为目标机端调试代理支持的调试控制命令,并转发到目标机端;目标机端调试代理处理调试控制命令,并将处理结果回复到宿主机端目标机服务器;宿主机端目标机服务器将回复结果转换为交叉调试器的回复并发送给交叉调试器;交叉调试器所有的命令都处理完成后,将请求的执行结果组织成回复,回复给调试控制管理;调试控制管理接收到所有回复后,将回复中解析出的调试图形界面需要的数据返回调试图形界面;调试图形界面接收到调试控制操作的结果数据后,将操作结果信息在调试界面中图形化显示。优选的,通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换,具体包括:调试图形界面通过目标机服务器向目标机端公共调试代理任务发送调试级别切换的命令;公共调试代理任务处理调试级别切换命令,切换到系统级调试级别,向操作系统挂接系统级调试代理的调试中断处理,然后控制继续调度运行被调试的分区/任务并且马上再次触发调试中断,使得系统进入系统级调试代理的调试中断处理;系统级调试代理回复宿主机端调试图形界面调试级别切换是否成功;调试图形界面更新交叉调试器与目标机服务器、目标机服务器与系统级通信代理和调试会话的通信连接;宿主机调试图形界面显示和目标机调试会话、被调程序状态同步。优选的,通过调试图形界面进行系统级调试向分区级调试切换,或者,系统级调试向任务级调试切换,具体包括:调试图形界面通过目标机服务器向目标机端系统级调试代理发送调试级别切换的命令,系统级调试代理处理调试级别切换命令,切换到相应的调试级别,向操作系统挂接公共调试代理的调试中断处理程序;系统级调试代理回复宿主机端调试图形界面调试级别切换是否成功,并回复系统正常运行;调试图形界面如果收到切换成功,就发送获取任务/分区列表的命令到公共调试代理;公共调试代理回复任务/分区列表调试图形界面;调试图形界面列出任务/分区列表供用户选择;调试图形界面向公共调试代理发送控制用户选择的任务/分区暂停运行的命令:公共调试代理控制任务/分区暂停运行,并回复调试图形界暂停成功;调试图形界面向公共调试代理发送建立调试会话的命令;公共调试代理创建被调程序的调试会话,并回复创建结果给宿主机端调试图形界面;调试图形界面更新交叉调试器与目标机服务器、目标机服务器与任务级通信代理和调试会话的通信连接;宿主机调试图形界面显示和目标机调试会话、被调程序状态同步。优选的,所述交叉调试操作包括:查看变量、查看内存、查看表达式、查看寄存器、添加断点、删除断点、源码单步跳入、源码单步跳过、指令单步跳入、指令单步跳过。优选的,所述调试图形界面通过调试管理器启动调试会话,具体包括:如果是介入调试且被调程序正在运行,控制被调程序暂停运行;调试图形界面向目标机端调试代理发送建立调试会话的请求;目标机端调试代理创建被调程序的调试会话,并回复创建结果给宿主机端调试图形界面;调试图形界面启动交叉调试器;调试图形界面建立交叉调试器与目标机服务器的连接;调试图形界面通过调试管理器与交叉调试器建立连接;调试图形界面根据目标机端调试代理创建调试会话的情况设置建立目标机服务器与目标机通信代理和调试会话建立通信连接;调试图形界面为添加必要的被调试程序的调试符号表文件;如果是下载调试,设置程序要首次停止运行的临时断点,并控制被调程序运行停止到首次停止运行的临时断点位置。优选的,调试图形界面根据当前目标机状态创建调试配置时,如果是任务/分区的介入调试,就发送获取任务/分区列表的命令请求,得到任务/分区列表供用户选择,根据用户选择创建调试配置。综上所述,本专利技术具有的优点效果:能更好地调试发现嵌入式系统中不同程序中存在的bug,包括多核嵌入式操作系统的系统程序(内核本文档来自技高网...

【技术保护点】
1.一种基于多核嵌入式系统的多级调试方法,其特征在于,所述多核嵌入式系统包括宿主机和目标机;所述宿主机端包括调试图形界面、调试管理器、交叉调试器、目标机服务器、宿主机OS;所述目标机端包括系统级通信代理、系统级调试代理、任务级通信代理、公共调试代理、任务级调试代理、分区级调试代理;所述多级调试方法包括:/n根据预设的调试配置和目标机状态,启动宿主机和目标机的调试;/n宿主机向目标机发送指令,以便目标机进行交叉调试操作;/n如果当前调试会话的状态处于分区级调试或者任务级调试,则通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换;/n如果当前调试会话的状态处于系统级调试,则通过调试图形界面进行系统级调试向分区级调试切换,或者,系统级调试向任务级调试切换。/n

【技术特征摘要】
1.一种基于多核嵌入式系统的多级调试方法,其特征在于,所述多核嵌入式系统包括宿主机和目标机;所述宿主机端包括调试图形界面、调试管理器、交叉调试器、目标机服务器、宿主机OS;所述目标机端包括系统级通信代理、系统级调试代理、任务级通信代理、公共调试代理、任务级调试代理、分区级调试代理;所述多级调试方法包括:
根据预设的调试配置和目标机状态,启动宿主机和目标机的调试;
宿主机向目标机发送指令,以便目标机进行交叉调试操作;
如果当前调试会话的状态处于分区级调试或者任务级调试,则通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换;
如果当前调试会话的状态处于系统级调试,则通过调试图形界面进行系统级调试向分区级调试切换,或者,系统级调试向任务级调试切换。


2.根据权利要求1所述的多级调试方法,其特征在于,所述根据预设的调试配置和目标机状态,启动宿主机和目标机的调试,具体包括:
如果目标机服务器未连接目标机,调试图形界面控制目标机服务器与目标机建立通信连接;
调试图形界面根据当前目标机状态创建调试配置;
调试图形界面根据调试配置通过调试管理器创建调试会话;
调试图形界面通过调试管理器启动调试会话。


3.根据权利要求1所述的多级调试方法,其特征在于,所述宿主机向目标机发送指令,以便目标机进行交叉调试操作,具体包括:
调试图形界面接收用户输入的调试操作指令,进行调试相关操作;
调试图形界面通过调试控制管理将调试操作转换为单个或多个交叉调试器命令,然后逐一发送给交叉调试器;
交叉调试器处理命令,和目标机程序调试直接相关的命令将被转换为单个或多个命令发送给目标机服务器,和目标机程序调试不直接相关的命令,处理后组织回复,回复给调试控制管理;
目标机服务器再转换命令包为目标机端调试代理支持的调试控制命令,并转发到目标机端;
目标机端调试代理处理调试控制命令,并将处理结果回复到宿主机端目标机服务器;
宿主机端目标机服务器将回复结果转换为交叉调试器的回复并发送给交叉调试器;
交叉调试器所有的命令都处理完成后,将请求的执行结果组织成回复,回复给调试控制管理;
调试控制管理接收到所有回复后,将回复中解析出的调试图形界面需要的数据返回调试图形界面;
调试图形界面接收到调试控制操作的结果数据后,将操作结果信息在调试界面中图形化显示。


4.根据权利要求1所述的多级调试方法,其特征在于,通过调试图形界面进行分区级调试向系统级调试切换,或者,任务级调试向系统级调试切换,具体包括:
调试图形界面通过目标机服务器向目标机端公共调试代理任务发送调试级别切换的命令;
公共调试代理任务处理调试级别切换命令,切换到系统级调试级别,向操作系统挂接系统级调试代理的调试中断处理,然后控制继续调度运行被调试的分区/任务并且马上再次触发调试中断,使得系统进入系统级调试代理的调试...

【专利技术属性】
技术研发人员:麦先根田丹卫进
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:陕西;61

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

1