[发明专利]VxWorks系统下软件死机的故障定位方法在审
申请号: | 201811348127.7 | 申请日: | 2018-11-13 |
公开(公告)号: | CN109522144A | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 赵昶宇 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 王雪芬 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 故障定位 死机 重定向 故障原因分析 快速定位故障 异常处理程序 钩子函数 故障信息 记录系统 任务故障 任务监控 软件开发 实时软件 输出系统 异常处理 引导软件 用户定义 系统级 复位 排故 出错 诊断 开发 保存 全局 | ||
本发明涉及一种VxWorks系统下软件死机的故障定位方法,属于VxWorks系统下实时软件开发技术领域。本发明利用ED&R工具诊断故障,采用全局重定向和任务重定向输出系统故障和任务故障,设计任务监控获取出错任务的名称和状态,并采用异常处理钩子函数在用户定义的异常处理程序中保存异常现场。本发明采用的故障定位方法可以有效的记录系统死机和复位时系统级和任务级的故障信息,便于软件开发人员快速定位故障发生点,引导软件开发人员向着正确的排故方向进行故障原因分析。
技术领域
本发明属于VxWorks系统下实时软件开发技术领域,具体涉及一种VxWorks系统下软件死机的故障定位方法。
背景技术
在VxWorks系统下开发实时软件的过程中,由于开发者的经验和技术的限制,开发的软件在运行过程中经常会出现原因不明的死机或者复位,通常是由于堆栈溢出、内存泄漏、任务死循环、非法指针操作等原因导致系统崩溃。由于出现这些故障的现象不一,而且往往很难故障复现,造成故障定位异常困难。
通常情况下采用在线调试(通过网络或是串口)的手段对VxWorks系统下出现的软件故障进行跟踪调试。但是一旦VxWorks系统出现死机或者复位时,就无法进行在线调试了。现有的解决VxWorks系统下死机或复位的方法有基于堆栈异常定位故障、任务死循环定位、堆栈回溯分析法、看门狗电路等。这些方法大多只是针对某一种故障现象提出定位方法,或者只是能够检测软件出现故障,不能定位故障,对于VxWorks系统下死机和复位故障定位提供的帮助有限。
为了实现对VxWorks系统下软件死机和复位问题的快速有效故障定位,需要设计一种新的VxWorks系统下软件死机的故障定位方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种VxWorks系统下软件死机的故障定位方,能够定位操作系统内核异常,也能定位上层应用软件异常,提高软件的容错性和可维护性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种VxWorks系统下软件死机的故障定位方法,包括以下步骤:
S1:利用ED&R工具诊断故障,采用全局重定向和任务重定向输出系统故障和任务故障;
S2:设计任务监控获取出错任务的名称和状态;
S3:采用异常处理钩子函数在用户定义的异常处理程序中保存异常现场。
优选地,步骤S1中,利用VxWorks提供的ED&R工具在系统发生异常时记录故障类型、故障位置、预设关键寄存器值以及任务堆栈使用情况。
优选地,步骤S1中,利用全局重定向和任务重定向输出ED&R工具检测的VxWorks系统级故障信息,并将输出的故障信息保存在文件中。
优选地,步骤S1中,使用VxWorks下操作系统的ioGlobalStdSet()函数进行全局输出重定向,函数原型为:
void ioGlobalStdSet(int stdFd,int newFd);
其中,stdFd为STD_OUT或者STD_ERR,newFd为重定向的文件描述符,利用这个函数实现系统输出信息的捕获;
使用VxWorks下操作系统的ioTaskStdSet()函数进行任务输出重定向,函数原型为:
void ioTaskStdSet(int taskId,int stdFd,int newFd);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811348127.7/2.html,转载请声明来源钻瓜专利网。