一种基于错误目标捕获文件的重放调试装置及方法与流程

文档序号:33709950发布日期:2023-03-31 23:17阅读:82来源:国知局
一种基于错误目标捕获文件的重放调试装置及方法与流程

1.本发明涉及一种重放调试方法及装置,具体为一种基于错误目标捕获文件的重放调试装置及方法,属于软件调试和研发技术领域。


背景技术:

2.调试是软件开发的重要环节,随着嵌入式设备的高速发展,对嵌入式软件进行高效率的调试变得越来越重要。嵌入式软件运行中产生的数组越界、内存溢出、非法指针等导致软件失常或崩溃的错误,具有隐蔽性强、不可预见等特征,这些错误需要通过软件调试来分析定位,如何准确地重现错误目标是整个调试过程中的最关键的步骤。传统的调试是通过对软件行为的多次重现从而定位以及找出错误目标,这需要不断重复软件的运行与关闭,耗费软件调试人员大量的时间和精力,而且对于某些错误行为也不能重现真实的错误场景。
3.因此,如何快速准确地定位并重放错误,降低软件调试和研发成本,有效地缩短软件研发周期,已经成为亟待解决的问题。基于此,本技术提出一种基于错误目标捕获文件的重放调试装置及方法。


技术实现要素:

4.本发明的目的就在于为了解决上述至少一个技术问题而提供一种基于错误目标捕获文件的重放调试装置及方法。
5.本发明通过以下技术方案来实现上述目的:一种基于错误目标捕获文件的重放调试装置,该重放调试装置在软件发生错误时,捕获错误目标,生成错误目标捕获文件,实现错误重放调试,具体包括:
6.错误目标捕获组件,部署在目标机上,包括异常处理模块和通信代理模块;
7.重放调试组件,部署在宿主机上,包括重放插件、调试插件、反汇编工具和通信管理插件;
8.其中,所述错误目标捕获组件,在错误发生时,通过异常处理模块捕获错误目标,生成错误目标捕获文件,然后通过通信代理模块将错误目标捕获文件发送给重放调试组件;
9.所述错误目标捕获文件用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,包括文件信息、异常信息、任务栈信息和函数调用地址表;
10.所述软件为运行在嵌入式操作系统上的用户应用程序。
11.作为本发明再进一步的方案:错误为导致软件失常终止或崩溃的严重错误,包括地址访问越界、除零异常、非法指针、未定义指令、内存溢出和其它可触发处理器异常的错误。
12.作为本发明再进一步的方案:文件信息包括文件类型、处理器类型和操作系统版本名称;异常信息包括异常类型、发生异常的任务id、发生异常的任务名称和异常现场通用
寄存器信息;任务栈信息为发生错误的任务的栈信息,包括任务栈长度、任务栈基址和任务栈内容;函数调用地址表包括发生异常的函数调用层级数和发生异常的函数调用地址信息。
13.一种基于错误目标捕获文件的重放调试方法,包括以下步骤:
14.s1)重放调试组件启动调试模式,通过通信管理插件获取错误目标捕获文件;
15.s2)反汇编工具解析发生错误的软件的可执行文件,生成反汇编文件;
16.s3)调试插件获取反汇编文件记录的软件函数信息,分析错误目标捕获文件,将错误目标捕获文件中保存的函数调用地址匹配反汇编文件中的函数信息,生成函数信息文件;
17.s4)重放插件读取函数信息文件和错误目标捕获文件记录的信息,重放错误现场。
18.作为本发明再进一步的方案:步骤s2)中,函数信息包括函数名称、函数地址、函数对应的源代码文件名称、函数对应的源代码和函数对应的源代码行号。
19.作为本发明再进一步的方案:步骤s3)中,生成函数信息文件的过程为:
20.①
取出错误目标捕获文件的函数调用地址表上记录的第1级函数地址;
21.②
在反汇编文件中搜索并记录第1级函数地址所在的源代码、源代码文件名称、源代码行号,记录与源代码行距离最近的函数名称和源代码;
22.③
重复



,将错误目标捕获文件的函数调用地址表上记录的n级函数地址都匹配到对应的函数信息。
23.④


中记录的函数信息,保存为函数信息文件。
24.作为本发明再进一步的方案:步骤s4)中,重放错误现场即通过重放插件向软件调试人员重演发生错误时刻的现场信息,主要包括错误对应的异常类型、错误发生处的源代码文件名称、源代码及源代码行号、发生错误的任务名称及任务id、错误发生时的通用寄存器信息、错误发生时的函数调用关系及函数信息。
25.本发明的有益效果是:重放调试方法装置包括错误目标捕获组件和重放调试组件,错误目标捕获组件在应用软件发生错误时,捕获错误目标,生成错误目标捕获文件,发送给重放调试组件;重放调试组件结合软件可执行文件的反汇编文件,重放错误现场,能够帮助软件调试人员准确、快速地定位并重放错误,降低软件调试和研发成本,缩短软件研发周期。
附图说明
26.图1为本发明重放调试装置框图;
27.图2为本发明重放调试方法框图;
28.图3为本发明函数信息文件的生成流程图。
具体实施方式
29.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.实施例一
31.本实施例是在一个嵌入式arm架构处理器ft-1500a/4和pc机上实施的实施例。
32.如图1所示,一种基于错误目标捕获文件的重放调试装置,该重放调试装置在软件发生错误时,捕获错误目标,生成错误目标捕获文件,实现错误重放调试,具体包括:
33.错误目标捕获组件,部署在ft-1500a/4处理器上,包括异常处理模块和通信代理模块;
34.重放调试组件,部署在pc机上上,包括重放插件、调试插件、反汇编工具和通信管理插件;
35.其中,所述错误目标捕获组件,在错误发生时,通过异常处理模块捕获错误目标,生成错误目标捕获文件,然后通过通信代理模块将错误目标捕获文件发送给重放调试组件;
36.所述错误目标捕获文件用于记录软件发生错误时嵌入式操作系统捕获的错误目标信息,包括文件信息、异常信息、任务栈信息和函数调用地址表;
37.所述软件为运行在嵌入式操作系统上的用户应用程序。
38.实施例二
39.如图1所示,本实施例中除包括实施例一中的所有技术特征之外,还包括:
40.错误为导致软件失常终止或崩溃的严重错误,包括地址访问越界、除零异常、非法指针、未定义指令、内存溢出和其它可触发处理器异常的错误。
41.文件信息包括文件类型、处理器类型和操作系统版本名称;异常信息包括异常类型、发生异常的任务id、发生异常的任务名称和异常现场通用寄存器信息;任务栈信息为发生错误的任务的栈信息,包括任务栈长度、任务栈基址和任务栈内容;函数调用地址表包括发生异常的函数调用层级数和发生异常的函数调用地址信息。
42.其中,处理器类型为arm,所述异常现场通用寄存器包括r0~r14、pc、cpsr寄存器。
43.实施例二
44.本实施例是在一个嵌入式arm架构处理器ft-1500a/4上实施的实施例,ft-1500a/4处理器上部署错误目标捕获组件;pc机上部署重放调试组件。用户加载应用程序到ft-1500/4处理器上后,应用程序运行时发生地址未定义指令错误,触发了未定义指令异常,错误目标捕获组件生成一份错误目标捕获文件。重放调试组件进行重放调试,如图1至图3所示,一种基于错误目标捕获文件的重放调试方法,包括以下步骤:
45.s1)重放调试组件启动调试模式,通过通信管理插件获取错误目标捕获文件;
46.s2)反汇编工具解析发生错误的软件的可执行文件,生成反汇编文件;
47.s3)调试插件获取反汇编文件记录的软件函数信息,分析错误目标捕获文件,将错误目标捕获文件中保存的函数调用地址匹配反汇编文件中的函数信息,生成函数信息文件;
48.s4)重放插件读取函数信息文件和错误目标捕获文件记录的信息,重放错误现场。
49.实施例四
50.如图1至图3所示,本实施例中除包括实施例三中的所有技术特征之外,还包括:
51.步骤s3)中,函数信息包括函数名称、函数地址、函数对应的源代码文件名称、函数对应的源代码和函数对应的源代码行号。
52.步骤s3)中,生成函数信息文件的过程为:
53.①
取出错误目标捕获文件的函数调用地址表上记录的第1级函数地址;
54.②
在反汇编文件中搜索并记录第1级函数地址所在的源代码、源代码文件名称、源代码行号,记录与源代码行距离最近的函数名称和源代码;
55.③
重复



,将错误目标捕获文件的函数调用地址表上记录的n级函数地址都匹配到对应的函数信息。
56.④


中记录的函数信息,保存为函数信息文件。
57.步骤s4)中,重放错误现场即通过重放插件向软件调试人员重演发生错误时刻的现场信息,主要包括错误对应的异常类型、错误发生处的源代码文件名称、源代码及源代码行号、发生错误的任务名称及任务id、错误发生时的通用寄存器信息、错误发生时的函数调用关系及函数信息。
58.工作原理:错误目标捕获组件在应用软件发生错误时,捕获错误目标,生成错误目标捕获文件,发送给重放调试组件;重放调试组件结合软件可执行文件的反汇编文件,重放错误现场。
59.本发明提出的一种基于错误目标捕获文件的重放调试装置及方法能够帮助软件调试人员准确、快速地定位并重放错误,降低软件调试和研发成本,缩短软件研发周期。
60.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
61.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1