首页 > 专利 > 上海斐讯数据通信技术有限公司 > 一种异常调试方法及系统专利详情

一种异常调试方法及系统   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2015-08-21
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2016-01-27
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2017-11-28
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2035-08-21
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201510519161.6 申请日 2015-08-21
公开/公告号 CN105204990B 公开/公告日 2017-11-28
授权日 2017-11-28 预估到期日 2035-08-21
申请年 2015年 公开/公告年 2017年
缴费截止日 2021-09-22
分类号 G06F11/36 主分类号 G06F11/36
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 1
引用专利数量 3 被引证专利数量 0
非专利引证 1、云霞 等.基于VxWorks开发的问题定位及检测方法的研究和实现《.计算机应用与软件》.2007,第51-53页. 张晓鸥.VxWorks异常问题调试方法分析. 《2006中国西部青年通信学术会议论文集》.2006,第40-43页. 房同忠 等.基于VxWorks 的异常问题分析及调试方法的研究《.工业控制计算机》.2012,第23-24页.;
引用专利 CN104536892A、CN1704908A、US2012042324A1 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 上海斐讯数据通信技术有限公司 当前专利权人 湖州爱迪电气有限公司
发明人 丁勇 第一发明人 丁勇
地址 上海市松江区思贤路3666号 邮编 201616
申请人数量 1 发明人数量 1
申请人所在省 上海市 申请人所在市 上海市松江区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
周希良
摘要
本发明提供一种异常调试方法及系统,用于对VxWorks操作系统中出现异常时的调试过程中,所述异常调试方法包括:在VxWorks操作系统中出现异常时,调用预设的异常处理函数获取当前任务的ID值,然后根据所述当前任务的ID值获取所述当前任务的任务信息,从而分析出任务的堆栈信息,之后提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息,最后根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析。本发明能在堆栈被破坏的情况下,对任务堆栈信息中相应的异常进行定位分析。
  • 摘要附图
    一种异常调试方法及系统
  • 说明书附图:图1
    一种异常调试方法及系统
  • 说明书附图:图2
    一种异常调试方法及系统
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-12-18 专利权的转移 登记生效日: 2020.12.07 专利权人由杭州吉吉知识产权运营有限公司变更为湖州爱迪电气有限公司 地址由310000 浙江省杭州市滨江区西兴街道江淑路260号10242室变更为313023 浙江省湖州市吴兴区埭溪镇上强路
2 2017-11-28 授权
3 2016-01-27 实质审查的生效 IPC(主分类): G06F 11/36 专利申请号: 201510519161.6 申请日: 2015.08.21
4 2015-12-30 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种异常调试方法,用于对VxWorks操作系统中出现异常时的调试过程中,其特征在于:所述异常调试方法包括:
在VxWorks操作系统中出现异常时,调用预设的异常处理函数并通过所述异常处理函数获取当前任务的ID值;
根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息;
提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息;
根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析;所述异常调试方法还包括,在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。

2.根据权利要求1所述的异常调试方法,其特征在于:所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。

3.根据权利要求1所述的异常调试方法,其特征在于:在所述flash中,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值。

4.根据权利要求3所述的异常调试方法,其特征在于:当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。

5.一种异常调试系统,用于对VxWorks操作系统中出现异常时的调试过程中,其特征在于:所述异常调试系统包括:
调用模块,用于在VxWorks操作系统中出现异常时,调用预设的异常处理函数;
任务ID值获取模块,与所述调用模块相连,用于通过所述异常处理函数获取当前任务的ID值;堆栈信息获取模块,与所述任务ID值获取模块相连,用于根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息;
提取镜像模块,与所述堆栈信息获取模块相连,用于提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息;
异常进行定位分析模块,与所述提取镜像模块相连,用于根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析;所述异常调试系统还包括,
文件保存模块,与所述堆栈信息获取模块相连,用于在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。

6.根据权利要求5所述的异常调试系统,其特征在于:在所述文件保存模块中,所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。

7.根据权利要求5所述的异常调试系统,其特征在于:所述文件保存模块包括文件数量控制单元,用于控制在所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值。

8.根据权利要求7所述的异常调试系统,其特征在于:所述文件保存模块中还包括与所述文件数量控制单元相连的删除单元,用于当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
说明书

技术领域

[0001] 本发明涉及操作系统调试技术领域,特别是涉及VxWorks操作系统调试技术领域,具体为一种异常调试方法及系统。

背景技术

[0002] VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks上。
[0003] VxWorks支持四种文件系统:dosFs,rt11Fs,rawFs和tapeFs,支持在一个单独的VxWorks系统上同时并存几个不同的文件系统。板级支持包BSP(Board Support Package)向VxWorks操作系统提供了对各种板子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包包括一个ROM启动(Boot ROM)或其它启动机制。
[0004] Vxworks中程序假如处理不好(比如内存访问越界等)会产生异常。遇到异常Vxworks系统会自动重启,造成调试比较麻烦。现有技术中的一种做法是在异常处理时,通过Vxworks提供的异常处理hook函数,遇到异常时,通过系统命令得到taskID,通过taskID可以得到task的一些信息从而分析出任务的函数调用堆栈,从而定位出问题大概出现在哪个函数中。有很多时候异常时由于内存越界访问导致的,任务的堆栈可能被破坏,通过上述方案不能分析出任务的函数调用堆栈,从而无法定位问题。

发明内容

[0005] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种异常调试方法及系统,用于解决现有技术中若堆栈被破坏便无法对相应的异常进行定位的问题。
[0006] 为实现上述目的及其他相关目的,本发明提供一种异常调试方法,用于对VxWorks操作系统中出现异常时的调试过程中,所述异常调试方法包括:在VxWorks操作系统中出现异常时,调用预设的异常处理函数并通过所述异常处理函数获取当前任务的ID值;根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息;提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息;根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析。
[0007] 可选地,所述异常调试方法还包括:在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。
[0008] 可选地,所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。
[0009] 可选地,在所述flash中,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值。
[0010] 可选地,当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
[0011] 为实现上述目的,本发明还提供一种异常调试系统,用于对VxWorks操作系统中出现异常时的调试过程中,所述异常调试系统包括:调用模块,用于在VxWorks操作系统中出现异常时,调用预设的异常处理函数;任务ID值获取模块,与所述调用模块相连,用于通过所述异常处理函数获取当前任务的ID值;堆栈信息获取模块,与所述任务ID值获取模块相连,用于根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息;提取镜像模块,与所述堆栈信息获取模块相连,用于提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息;异常进行定位分析模块,与所述提取镜像模块相连,用于根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析。所述异常调试系统还包括:
[0012] 可选地,文件保存模块,与所述堆栈信息获取模块相连,用于在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。
[0013] 可选地,在所述文件保存模块中,所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。
[0014] 可选地,所述文件保存模块包括文件数量控制单元,用于控制在所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值。
[0015] 可选地,所述文件保存模块中还包括与所述文件数量控制单元相连的删除单元,用于当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
[0016] 如上所述,本发明的一种异常调试方法及系统,具有以下有益效果:
[0017] 本发明在VxWorks操作系统中出现异常时,调用预设的异常处理函数获取当前任务的ID值,然后根据所述当前任务的ID值获取所述当前任务的任务信息,从而分析出任务的堆栈信息,之后提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息,最后根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析,所以本发明能在堆栈被破坏的情况下,进行相应的异常进行定位分析。本发明简单高效,具有较强的通用性和实用性。

实施方案

[0029] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0030] 本实施例的目的在于提供一种异常调试方法及系统,用于解决现有技术中若堆栈被破坏便无法对相应的异常进行定位的问题。以下将详细阐述本实施例的一种异常调试方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种异常调试方法及系统。
[0031] 本实施例提供一种异常调试方法及系统,主要是通过记录任务的堆栈,并提供命令dump出异常的任务堆栈信息,结合objdump的函数地址段信息,能在堆栈被破坏的情况下,进行相应的异常定位分析。
[0032] 具体地,如图1所示,本实施例提供一种异常调试方法,用于对VxWorks操作系统中出现异常时的调试过程中,所述异常调试方法包括以下步骤。
[0033] 步骤S11,在VxWorks操作系统中出现异常时,调用预设的异常处理函数并通过所述异常处理函数获取当前任务的ID值。
[0034] 其中,在本实施例中,所述异常处理函数为hook函数。在使用本实施例中的异常调试方法之前,需要预先注册hook函数,以供使用时调用。在VxWorks操作系统中出现异常时,调用hook函数并通过所述hook函数获取当前任务的ID值,即taskID。
[0035] 步骤S12,根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息。
[0036] 具体地,在本实施例中,所述异常调试方法还包括:在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。
[0037] 其中,在本实施例中,所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。例如,保存有当前任务的任务信息和所述任务的堆栈信息文件以“EXCEPTION_【时间戳】.txt”命名。
[0038] 此外,在本实施例中,在所述flash中,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值,其中,所述预设值可自定义,在本实施例中,所述预设值的选取范围为5~15,例如为10。
[0039] 当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
[0040] 具体地,在本实施例中,例如所述预设值选为10,那也就是说,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件最多为10个,假如已经存在10个保存所述当前任务的任务信息和所述任务的堆栈信息的文件,按保存时间来说,保存时间最早的那个文件会被删除。
[0041] 步骤S13,提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息。具体地,在本实施例中,需要提供一个用于镜像的dumpExcInfo的命令,可以从保存所述当前任务的任务信息和所述任务的堆栈信息的文件中把这些异常相关的任务信息dump出来。dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。dump检查文件系统上的文件,并确定哪些文件需要备份。这些文件将出于安全保护而被复制到给定的磁盘、磁带或其他存储媒体上,大于输出媒体容量的转储将被划分到多个卷。Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。当我们的程序发布出去之后,一般是无法跟踪自己代码的bug的,所以Dump(扩展名是.dmp)文件对于我们来说特别有用。我们可以通过.dmp文件把出现bug的情况再现,然后根据再现的状况(包括堆栈调用等情况),可以找到出现bug的行号,甚至是出现bug的点。
[0042] 步骤S14,根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析。
[0043] 具体地,在本实施例中,dump出任务信息后,可以结合将程序objdump的结果,对任务的堆栈信息进行分析,从分析定位问题。其中,所述objdump命令是反汇编目标文件或者可执行文件的命令,objdump有点像那个快速查看之类的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
[0044] 为使本领域技术人员进一步理解本实施例中的异常调试方法,以下将进一步说明本实施例中异常调试方法的实施过程。
[0045] 首先预设异常处理函数hook函数,在VxWorks操作系统中出现异常时,调用相应的异常处理函数hook函数,通过所述异常处理函数获取当前任务的taskID。通过taskID获取当前任务的信息并根据所述当前任务的任务信息获取任务的堆栈信息。保存当前任务基本信息以及相应的堆栈信息到flash中的文件中,文件以“EXCEPTION_【时间戳】.txt”命名,其中,文件最多为10个,假如已经存在10个,最早保存的一个文件会被删除。之后,提供一个dumpExcInfo的命令,可以从文件中把这些异常相关的任务信息dump出来。dump出任务信息后,可以结合将程序objdump的结果,对任务的堆栈信息进行分析,从分析定位问题。
[0046] 此外,本实施例还提供一种异常调试系统,用于对VxWorks操作系统中出现异常时的调试过程中,所述异常调试系统1包括:调用模块11,任务ID值获取模块12,堆栈信息获取模块13,文件保存模块14,提取镜像模块15以及异常进行定位分析模块16。
[0047] 所述调用模块11用于在VxWorks操作系统中出现异常时,调用预设的异常处理函数。其中,在本实施例中,所述异常处理函数为hook函数。在使用本实施例中的异常调试方法之前,需要预先注册hook函数,以供所述调用模块11使用时调用。在VxWorks操作系统中出现异常时,所述调用模块11调用hook函数。
[0048] 所述任务ID值获取模块12与所述调用模块11相连,用于通过所述异常处理函数获取当前任务的ID值;具体地,通过所述hook函数获取当前任务的ID值,即taskID。
[0049] 所述堆栈信息获取模块13与所述任务ID值获取模块12相连,用于根据所述当前任务的ID值获取所述当前任务的任务信息并根据所述当前任务的任务信息获取任务的堆栈信息。
[0050] 所述文件保存模块14与所述堆栈信息获取模块13相连,用于在获取到所述当前任务的任务信息和所述任务的堆栈信息后,通过指定文件格式和文件名称的文件将所述当前任务的任务信息和所述任务的堆栈信息保存到flash中。
[0051] 在所述文件保存模块14中,所述文件为txt格式;所述文件名称中包含保存文件时的时间戳。例如,保存有当前任务的任务信息和所述任务的堆栈信息文件以“EXCEPTION_【时间戳】.txt”命名。
[0052] 此外,在本实施例中,在所述flash中,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值,所以,在本实施例中,所述文件保存模块14包括文件数量控制单元,用于控制在所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件的最大数量不超过预设值。其中,所述预设值可自定义,在本实施例中,所述预设值的选取范围为5~15,例如为10。
[0053] 此外,在本实施例中,当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
[0054] 为实现上述功能,在本实施例中,所述文件保存模块14中还包括与所述文件数量控制单元相连的删除单元,用于当所述flash中保存所述当前任务的任务信息和所述任务的堆栈信息的文件的数量达到预设值时,在保存新的包含所述当前任务的任务信息和所述任务的堆栈信息的文件时,按所述文件的保存时间先后顺序,删除保存时间最早的文件。
[0055] 具体地,在本实施例中,例如所述预设值选为10,那也就是说,保存所述当前任务的任务信息和所述任务的堆栈信息的所述文件最多为10个,假如已经存在10个保存所述当前任务的任务信息和所述任务的堆栈信息的文件,按保存时间来说,保存时间最早的那个文件会被所述删除单元删除。
[0056] 所述提取镜像模块15与所述堆栈信息获取模块13相连,用于提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息。
[0057] 具体地,在本实施例中,所述提取镜像模块15需要提供一个用于镜像的dumpExcInfo的命令,可以从保存所述当前任务的任务信息和所述任务的堆栈信息的文件中把这些异常相关的任务信息dump出来。
[0058] 所述异常进行定位分析模块16与所述提取镜像模块15相连,用于根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析。
[0059] 具体地,在本实施例中,dump出任务信息后,可以结合将程序objdump的结果,对任务的堆栈信息进行分析,从分析定位问题。其中,所述objdump命令是反汇编目标文件或者可执行文件的命令,objdump有点像那个快速查看之类的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
[0060] 为使本领域技术人员进一步理解本实施例中的异常调试系统1,以下将进一步说明本实施例中异常调试系统1的工作过程。
[0061] 首先预设异常处理函数hook函数,在VxWorks操作系统中出现异常时,所述调用模块11调用相应的异常处理函数hook函数,所述任务ID值获取模块12通过所述异常处理函数获取当前任务的taskID。所述堆栈信息获取模块13通过taskID获取当前任务的信息并根据所述当前任务的任务信息获取任务的堆栈信息。所述文件保存模块14保存当前任务基本信息以及相应的堆栈信息到flash中的文件中,文件以“EXCEPTION_【时间戳】.txt”命名,其中,所述文件数量控制单元控制文件最多为10个,假如已经存在10个,最早保存的一个文件会被所述删除单元删除。之后,所述提取镜像模块15提供一个dumpExcInfo的命令,从文件中把这些异常相关的任务信息dump出来。dump出任务信息后,所述异常进行定位分析模块16可以结合将程序objdump的结果,对任务的堆栈信息进行分析,从分析定位问题。
[0062] 综上所述,本发明在VxWorks操作系统中出现异常时,调用预设的异常处理函数获取当前任务的ID值,然后根据所述当前任务的ID值获取所述当前任务的任务信息,从而分析出任务的堆栈信息,之后提取所述任务的堆栈信息中的异常任务堆栈信息并镜像所述异常任务堆栈信息,最后根据镜像的异常任务堆栈信息和将所述镜像的异常任务堆栈信息反汇编的结果,对所述异常任务堆栈信息中的异常进行定位分析,所以本发明能在堆栈被破坏的情况下,进行相应的异常进行定位分析。本发明简单高效,具有较强的通用性和实用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0063] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

附图说明

[0018] 图1显示为本发明的异常调试方法的流程示意图。
[0019] 图2显示为本发明的异常调试系统的结构示意图。
[0020] 元件标号说明
[0021] 1         异常调试系统
[0022] 11        调用模块
[0023] 12        任务ID值获取模块
[0024] 13        堆栈信息获取模块
[0025] 14        文件保存模块
[0026] 15        提取镜像模块
[0027] 16        异常进行定位分析模块
[0028] S11~S14  步骤
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号