智能穿戴设备的异常处理方法、装置及设备和存储介质与流程

文档序号:29575325发布日期:2022-04-09 06:08阅读:235来源:国知局
智能穿戴设备的异常处理方法、装置及设备和存储介质与流程

1.本技术涉及智能穿戴技术领域,更具体地说,涉及一种智能穿戴设备的异常处理方法、装置及一种电子设备和一种计算机可读存储介质。


背景技术:

2.智能手表和智能手环等智能穿戴设备已广泛应用,在用户使用智能穿戴设备的过程中,产品出现异常状况会导致卡死、重启、变砖等问题的出现。而此时产品已经在用户手里,没有调试线供开发人员在线调试,所以离线log应运而生。
3.在相关技术中,当产品在使用过程中出现异常状况时,会将任务的任务栈信息保存到log文件中,通过解析log文件定位异常、分析问题的场景。但是,在解析log文件时容易出现解析失败的问题。
4.因此,如何在智能穿戴设备异常时避免解析log文件失败是本领域技术人员需要解决的技术问题。


技术实现要素:

5.本技术的目的在于提供一种智能穿戴设备的异常处理方法、装置及一种电子设备和一种计算机可读存储介质,在智能穿戴设备异常时避免解析log文件失败。
6.为实现上述目的,本技术提供了一种智能穿戴设备的异常处理方法,包括:
7.获取智能穿戴设备中任务的任务栈信息;
8.剔除所述任务栈信息中的局部变量和形参,得到目标任务栈信息;其中,所述目标任务栈信息中仅包含被压栈的寄存器值;
9.对所述目标任务栈信息进行解析得到函数调用关系;
10.基于所述函数调用关系进行异常处理。
11.其中,所述剔除所述任务栈信息中的局部变量和形参,包括:
12.剔除所述任务栈信息中最低位为偶数的机器码。
13.其中,所述剔除所述任务栈信息中的局部变量和形参,包括:
14.确定函数跳转指令的编码规则;
15.剔除所述任务栈信息中不符合所述编码规则的机器码。
16.其中,所述剔除所述任务栈信息中不符合所述编码规则的机器码,包括:
17.对所述任务栈信息进行反汇编得到汇编语言代码;
18.在所述汇编语言代码中确定不符合所述编码规则的目标汇编语言代码;
19.剔除所述任务栈信息中所述目标汇编语言代码汇编得到的机器码。
20.其中,对所述目标任务栈信息进行解析得到函数调用关系,包括:
21.确定所有函数的地址范围;
22.将所述目标任务栈信息中的指令分别与所述函数的地址范围进行比较,以确定所述目标任务栈信息中的指令分别对应的目标函数;
23.基于所述目标任务栈信息中的指令分别对应的目标函数确定函数调用关系。
24.其中,将所述目标任务栈信息中的指令分别与所述函数的地址范围进行比较,包括:
25.确定指令大小,从所述目标任务栈信息中依次取出所述指令大小的信息,与所述函数的地址范围进行比较。
26.其中,所述基于所述函数调用关系进行异常处理,包括:
27.获取异常时间和异常位置,并基于所述函数调用关系对所述异常位置的代码进行修改。
28.为实现上述目的,本技术提供了一种智能穿戴设备的异常处理装置,包括:
29.获取模块,用于获取智能穿戴设备中任务的任务栈信息;
30.剔除模块,用于剔除所述任务栈信息中的局部变量和形参,得到目标任务栈信息;其中,所述目标任务栈信息中仅包含被压栈的寄存器值;
31.解析模块,用于对所述目标任务栈信息进行解析得到函数调用关系;
32.处理模块,用于基于所述函数调用关系进行异常处理。
33.为实现上述目的,本技术提供了一种电子设备,包括:
34.存储器,用于存储计算机程序;
35.处理器,用于执行所述计算机程序时实现如上述智能穿戴设备的异常处理方法的步骤。
36.为实现上述目的,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述智能穿戴设备的异常处理方法的步骤。
37.通过以上方案可知,本技术提供的一种智能穿戴设备的异常处理方法,包括:获取智能穿戴设备中任务的任务栈信息;剔除所述任务栈信息中的局部变量和形参,得到目标任务栈信息;其中,所述目标任务栈信息中仅包含被压栈的寄存器值;对所述目标任务栈信息进行解析得到函数调用关系;基于所述函数调用关系进行异常处理。
38.本技术提供的智能穿戴设备的异常处理方法,在获取任务栈信息后,剔除其中的局部局部变量和形参,只保存被压栈的寄存器值,得到目标任务栈信息,对目标任务栈信息进行解析时可以保证解析正确,通过解析到的函数调用关系实现了异常的定位。本技术还公开了一种智能穿戴设备的异常处理装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
39.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附
图中:
41.图1为根据一示例性实施例示出的一种智能穿戴设备的异常处理方法的流程图;
42.图2为根据一示例性实施例示出的一种智能穿戴设备的异常处理装置的结构图;
43.图3为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。另外,在本技术实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
45.本技术实施例公开了一种智能穿戴设备的异常处理方法,在智能穿戴设备异常时避免解析log文件失败。
46.参见图1,根据一示例性实施例示出的一种智能穿戴设备的异常处理方法的流程图,如图1所示,包括:
47.s101:获取智能穿戴设备中任务的任务栈信息;
48.本实施例的目的在于对智能穿戴设备的异常进行定位,在具体实施中,当智能穿戴设备出现异常时,将其中各任务的任务栈信息保存至log文件中,当然还可以在log文件中保存出现异常的异常时间和异常位置,也即运行错误的函数的位置。
49.s102:剔除所述任务栈信息中的局部变量和形参,得到目标任务栈信息;其中,所述目标任务栈信息中仅包含被压栈的寄存器值;
50.需要说明的是,解析log文件的原理为将任务栈信息与map文件中保存的所有函数的地址范围进行比较,由于任务栈信息中不仅包含函数对应的被压栈的寄存器值,还包括局部变量和形参,解析时会将局部变量和形参解析为函数,导致函数调用链混乱,进而导致解析失败。也就是说,局部变量以及函数的参数不是特别关键的数据,但是这些数据在任务栈信息中,可能会导致log文件解析失败。
51.因此,在本实施例中,将任务栈信息中的局部变量和形参剔除得到目标任务栈信息,目标任务栈信息中只保留被压栈的寄存器值,从而保证后续解析目标任务栈信息正确。
52.作为一种可行的实施方式,所述剔除所述任务栈信息中的局部变量和形参,包括:剔除所述任务栈信息中最低位为偶数的机器码。
53.可以理解的是,根据arm(advanced risc machines)指令和thumb指令集的区别,而armv6-m和armv7-m非特权模式下只支持thumb指令集,基于此可以剔除任务栈信息中的变量。arm指令集是32位指令集,特点是执行效率高。thumb指令集是16位指令集,其为arm指令集的一个子集。thumb指令集的代码密度更高,大大的节省了存储空间。但是该指令集不是一个完整的指令集,处理器不能只支持thumb指令集而不支持arm指令集。当异常中断时,需要使用arm指令集,在非特权状态下,使用thumb指令集。thumb-2技术使thumb指令集增加了一些与arm指令集相同的指令(大多位32位指令),降低了thumb指令集的运行条件限制,减少mcu特权模式和非特权模式切换时thumb指令和arm指令的切换。需要说明的是,由于thumb指令是2字节对齐的,而arm指令时4字节对齐的。arm内核为了区分thumb指令和arm指
令,在编码时,thumb指令的最低位是奇数,而arm指令的最低位是偶数。因此可以通过奇数、偶数的判断筛选出变量和指令,也即在armv6-m和armv7-m架构下,对于任务栈信息,只有奇数才是指令集的机器码,而偶数是变量或形参的机器码,即剔除任务栈信息中最低位为偶数的机器码,只保留最低位为奇数的机器码,从而只保留任务栈信息中的指令。
54.作为另一种可行的实施方式,所述剔除所述任务栈信息中的局部变量和形参,包括:确定函数跳转指令的编码规则;剔除所述任务栈信息中不符合所述编码规则的机器码。
55.在具体实施中,可以根据跳转指令bl、blx的编码规则,过滤掉非寄存器值,剔除任务栈信息中不符合跳转指令的编码规则的机器码。具体的,对任务栈信息进行反汇编得到汇编语言代码,在汇编语言代码中确定不符合跳转指令的编码规则的目标汇编语言代码,剔除任务栈信息中目标汇编语言代码汇编得到的机器码。
56.s103:对所述目标任务栈信息进行解析得到函数调用关系;
57.在本步骤中,对只保留了寄存器值的目标任务栈信息进行解析得到函数调用关系。作为一种可行的实施方式,本步骤包括:确定所有函数的地址范围;将所述目标任务栈信息中的指令分别与所述函数的地址范围进行比较,以确定所述目标任务栈信息中的指令分别对应的目标函数;基于所述目标任务栈信息中的指令分别对应的目标函数确定函数调用关系。
58.可以理解的是,解析需要map文件和log文件,map文件记录了所有函数的地址范围,可以以函数的起始地址以及大小的形式进行记录,log文件记录了目标任务栈信息、异常时间和异常位置。在具体实施中,根据log文件解析出异常时间和异常位置,然后从log文件中取出目标任务栈信息,依次取出指令大小的信息,与map文件中各函数的地址范围进行比较,得到各指令对应的函数,进而确定函数调用关系。例如,指令大小为4byte,依次从目标任务栈信息中取出4byte的信息,与各函数的地址范围进行比较。
59.s104:基于所述函数调用关系进行异常处理。
60.在具体实施中,根据log文件解析出异常时间、异常位置和函数调用关系,基于函数调用关系进行异常处理,作为一种可行的实施方式,基于该函数调用关系对异常位置的代码进行修改。
61.本技术实施例提供的智能穿戴设备的异常处理方法,在获取任务栈信息后,剔除其中的局部局部变量和形参,只保存被压栈的寄存器值,得到目标任务栈信息,对目标任务栈信息进行解析时可以保证解析正确,通过解析到的函数调用关系实现了异常的定位。
62.下面对本技术实施例提供的一种智能穿戴设备的异常处理装置进行介绍,下文描述的一种智能穿戴设备的异常处理装置与上文描述的一种智能穿戴设备的异常处理方法可以相互参照。
63.参见图2,根据一示例性实施例示出的一种智能穿戴设备的异常处理装置的结构图,如图2所示,包括:
64.获取模块201,用于获取智能穿戴设备中任务的任务栈信息;
65.剔除模块202,用于剔除所述任务栈信息中的局部变量和形参,得到目标任务栈信息;其中,所述目标任务栈信息中仅包含被压栈的寄存器值;
66.解析模块203,用于对所述目标任务栈信息进行解析得到函数调用关系;
67.处理模块204,用于基于所述函数调用关系进行异常处理。
68.本技术实施例提供的智能穿戴设备的异常处理装置,在获取任务栈信息后,剔除其中的局部局部变量和形参,只保存被压栈的寄存器值,得到目标任务栈信息,对目标任务栈信息进行解析时可以保证解析正确,通过解析到的函数调用关系实现了异常的定位。
69.在上述实施例的基础上,作为一种优选实施方式,所述剔除模块202包括:
70.第一剔除单元,用于剔除所述任务栈信息中最低位为偶数的机器码。
71.在上述实施例的基础上,作为一种优选实施方式,所述剔除模块202包括:
72.第二剔除单元,用于确定函数跳转指令的编码规则,剔除所述任务栈信息中不符合所述编码规则的机器码。
73.在上述实施例的基础上,作为一种优选实施方式,所述第二剔除单元具体为确定函数跳转指令的编码规则,对所述任务栈信息进行反汇编得到汇编语言代码,在所述汇编语言代码中确定不符合所述编码规则的目标汇编语言代码,剔除所述任务栈信息中所述目标汇编语言代码汇编得到的机器码的单元。
74.在上述实施例的基础上,作为一种优选实施方式,所述解析模块203包括:
75.第一确定单元,用于确定所有函数的地址范围;
76.比较单元,用于将所述目标任务栈信息中的指令分别与所述函数的地址范围进行比较,以确定所述目标任务栈信息中的指令分别对应的目标函数;
77.第二确定单元,用于基于所述目标任务栈信息中的指令分别对应的目标函数确定函数调用关系。
78.在上述实施例的基础上,作为一种优选实施方式,所述比较单元具体为确定指令大小,从所述目标任务栈信息中依次取出所述指令大小的信息,与所述函数的地址范围进行比较,以确定所述目标任务栈信息中的指令分别对应的目标函数的模块。
79.在上述实施例的基础上,作为一种优选实施方式,所述处理模块204具体为获取异常时间和异常位置,并基于所述函数调用关系对所述异常位置的代码进行修改的模块。
80.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
81.基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备,图3为根据一示例性实施例示出的一种电子设备的结构图,如图3所示,电子设备包括:
82.通信接口1,能够与其它设备比如网络设备等进行信息交互;
83.处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的智能穿戴设备的异常处理方法。而所述计算机程序存储在存储器3上。
84.当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统4。
85.本技术实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
86.可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非
易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
87.上述本技术实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
88.处理器2执行所述程序时实现本技术实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
89.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
90.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
91.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,
该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
92.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1