基于嵌入式操作系统的错误目标捕获文件及其生成方法技术方案

技术编号:37277036 阅读:16 留言:0更新日期:2023-04-20 23:44
本发明专利技术公开了一种基于嵌入式操作系统的错误目标捕获文件及其生成方法,错误目标捕获文件用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,运行在嵌入式操作系统上的软件某一任务发生错误时,触发处理器异常,嵌入式操作系统中止调度,执行异常响应程序;异常响应程序保存异常现场信息,执行异常处理程序;异常处理程序捕获错误目标信息,生成错误目标捕获文件,删除发生错误的任务;嵌入式操作系统退出异常处理程序和异常响应程序,恢复调度。本发明专利技术提出的错误目标捕获文件生成方法能够快速高效地收集分析错误目标的必要信息,生成的错误目标捕获文件占用内存空间小,能够辅助软件开发人员准确、快速地定位错误目标。标。标。

【技术实现步骤摘要】
基于嵌入式操作系统的错误目标捕获文件及其生成方法


[0001]本专利技术涉及一种错误目标捕获文件,具体为一种基于嵌入式操作系统的错误目标捕获文件及其生成方法,属于嵌入式操作系统


技术介绍

[0002]随着嵌入式操作系统的高速发展,各类基于嵌入式操作系统的设备已广泛应用于航空航天、国防军事、工业控制、消费电子、通信和汽车等重要领域。
[0003]虽然嵌入式系统的安全性、可靠性等性能越来越高,但是嵌入式软件运行过程中难免会产生某些难以预料的错误,导致软件失常甚至崩溃。定位这类错误的通常做法是收集发生错误时的所有现场信息,生成一个核心转储文件供调试器进行分析。核心转储文件为ELF Core类型,包括ELF header(ELF文件头)、Program headers(程序头部定义)、PT_NOTE段、PT_LOAD段。其中,PT_NOTE段用于保存程序产生异常时的线程状态信息、寄存器信息,PT_LOAD段用于保存进程已映射的内存段和代码段。
[0004]由于核心转储文件记录的现场信息较多,所以核心转储文件生成时间较长,占用的内存空间较大。然而,对于尺寸和资源都极其有限的嵌入式系统来说,核心转储文件格式过于复杂冗长,会占用过多的内存空间,因此,如何在占用系统内存空间小的前提下,快速高效地收集分析错误目标的必要信息,辅助软件开发人员准确、快速地定位错误目标,已经成为亟待解决的问题。

技术实现思路

[0005]本专利技术的目的就在于为了解决上述嵌入式软件发生错误导致软件失常或崩溃时,传统的核心转储文件占用系统内存空间大、生成时间长等问题而提供一种基于嵌入式操作系统的错误目标捕获文件及其生成方法。
[0006]本专利技术通过以下技术方案来实现上述目的:一种基于嵌入式操作系统的错误目标捕获文件,包括错误目标捕获文件,所述错误目标捕获文件用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,错误目标捕获文件包括文件信息、异常信息、任务栈信息和函数调用地址表,所述软件为运行在嵌入式操作系统上的用户应用程序,所述错误为导致软件失常终止或崩溃的严重错误;
[0007]其中,所述文件信息包括文件类型、处理器类型、操作系统版本名称;所述异常信息包括异常类型、发生异常的任务ID、发生异常的任务名称和异常现场通用寄存器信息;所述任务栈信息为发生错误的任务的栈信息,包括任务栈长度、任务栈基址、任务栈内容;所述函数调用地址表包括发生异常的函数调用层级数、发生异常的函数调用地址信息。
[0008]作为本专利技术再进一步的方案:错误为导致软件失常终止或崩溃的严重错误,包括地址访问越界、除零异常、非法指针、未定义指令、内存溢出和其它可触发处理器异常的错误。
[0009]一种基于嵌入式操作系统的错误目标捕获文件的生成方法,错误目标捕获文件生
成方法包括以下步骤:
[0010]步骤一、运行在嵌入式操作系统上的软件某一任务发生错误时,触发处理器异常,嵌入式操作系统中止调度,执行异常响应程序;
[0011]步骤二、异常响应程序保存异常现场信息,执行异常处理程序;
[0012]步骤三、异常处理程序捕获错误目标信息,生成错误目标捕获文件,删除发生错误的任务;
[0013]步骤四、嵌入式操作系统退出异常处理程序和异常响应程序,恢复调度。
[0014]作为本专利技术再进一步的方案:步骤二中,所述异常响应程序保存异常现场信息的流程为:
[0015]①
进入异常栈,保存异常栈信息,包括栈帧寄存器、栈基寄存器、链接寄存器的信息;
[0016]②
通过专用寄存器,从异常栈切换到任务栈,保存异常现场所有通用寄存器信息;
[0017]③
根据

保存的异常栈信息,恢复异常栈。
[0018]作为本专利技术再进一步的方案:异常处理程序生成错误目标捕获文件的过程为:
[0019]①
为错误目标捕获文件分配内存空间;
[0020]②
将文件类型、处理器类型和操作系统版本名称写入错误目标捕获文件;
[0021]③
获取异常类型、发生异常的任务ID、发生异常的任务名称和异常现场通用寄存器信息,写入错误目标捕获文件;
[0022]④
获取发生错误的任务的栈长度、栈基址和栈内容,写入错误目标捕获文件;
[0023]⑤
获取函数调用地址表,写入错误目标捕获文件。
[0024]作为本专利技术再进一步的方案:获取函数调用地址表的过程为:
[0025]①
根据异常处理程序中保存的通用寄存器信息,对栈帧寄存器、栈基寄存器、链接寄存器的信息进行分析,得到发生错误的目标函数地址;
[0026]②
根据异常处理程序中保存的任务栈信息,对发生错误的目标函数调用地址,逐层解析函数调用关系和目标函数调用地址;
[0027]③
记录函数调用层级数,输出函数调用地址表。
[0028]本专利技术的有益效果是:运行在嵌入式操作系统上的软件某一任务发生错误时,触发处理器异常,嵌入式操作系统中止调度,执行异常响应程序;异常响应程序保存异常现场信息,执行异常处理程序;异常处理程序捕获错误目标信息,生成错误目标捕获文件,删除发生错误的任务;嵌入式操作系统退出异常处理程序和异常响应程序,恢复调度。本专利技术提出的错误目标捕获文件生成方法能够快速高效地收集分析错误目标的必要信息,生成的错误目标捕获文件占用内存空间小,能够辅助软件开发人员准确、快速地定位错误目标。
附图说明
[0029]图1为本专利技术错误目标捕获文件格式图;
[0030]图2为本专利技术错误目标捕获文件生成方法流程示意图;
[0031]图3为本专利技术异常现场信息保存流程示意图;
[0032]图4为本专利技术错误目标文件保存流程示意图。
[0033]图5为为本专利技术栈回溯流程示意图。
具体实施方式
[0034]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0035]实施例一
[0036]本实施例是在一个嵌入式ARM架构处理器FT

1500A/4上实施的实施例,FT

1500A/4处理器上运行嵌入式实时操作系统。
[0037]如图1所示,一种基于嵌入式操作系统的错误目标捕获文件,包括错误目标捕获文件,所述错误目标捕获文件用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,错误目标捕获文件包括文件信息、异常信息、任务栈信息和函数调用地址表,所述软件为运行在嵌入式操作系统上的用户应用程序,所述错误为导致软件失常终止或崩溃的严重错误;
[0038]其中,所述文件信息包括文件类型、处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于嵌入式操作系统的错误目标捕获文件,其特征在于:包括错误目标捕获文件,用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,所述错误目标捕获文件包括文件信息、异常信息、任务栈信息和函数调用地址表;其中,所述文件信息包括文件类型、处理器类型和操作系统版本名称;所述异常信息包括异常类型、发生异常的任务ID、发生异常的任务名称和异常现场通用寄存器信息;所述任务栈信息为发生错误的任务的栈信息,包括任务栈长度、任务栈基址和任务栈内容;所述函数调用地址表包括发生异常的函数调用层级数和发生异常的函数调用地址信息。2.根据权利要求1所述的错误目标捕获文件,其特征在于:所述错误为导致软件失常终止或崩溃的严重错误,包括地址访问越界、除零异常、非法指针、未定义指令、内存溢出和其它可触发处理器异常的错误。3.一种基于权利要求1所述的一种基于嵌入式操作系统的错误目标捕获文件的生成方法,其特征在于:所述生成方法包括以下步骤:步骤一、运行在嵌入式操作系统上的软件某一任务发生错误时,触发处理器异常,嵌入式操作系统中止调度,执行异常响应程序;步骤二、异常响应程序保存异常现场信息,执行异常处理程序;步骤三、异常处理程序捕获错误目标信息,生成错误目标捕获文件,删除发生错误的任务;步骤四、嵌入式操作系统退出异常处理程序和异常响应程序,恢复调度。4.根据权利要求3所述的生成方法,其特征在于:所述步骤二中,所述异常响应程序保存异常现场信息的流程为:

进入异常栈,保...

【专利技术属性】
技术研发人员:胡舒婷徐双国舒红霞
申请(专利权)人:中船重工武汉凌久电子有限责任公司
类型:发明
国别省市:

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

1