System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 程序异常分析方法、装置、电子设备及存储介质制造方法及图纸_技高网

程序异常分析方法、装置、电子设备及存储介质制造方法及图纸

技术编号:42803997 阅读:13 留言:0更新日期:2024-09-24 20:48
本发明专利技术公开一种程序异常分析方法、装置、电子设备及存储介质。程序异常分析方法,包括:读取记录程序运行数据的日志文件并根据预设的异常判断规则判断程序是否发生异常,日志文件包括程序触发异常时上下文切换区域中所保存的多个函数的函数栈内容,每个函数栈内容包括对应函数的函数信息;获取程序触发异常时的日志文件,基于日志文件的文件结构对日志文件进行解析,获取每个函数栈内容的函数信息,并输出函数信息。本发明专利技术通过直接输出函数信息,用户无需再借助外部调试器定位异常日志文件,并且仅需分析异常日志的函数信息即可,简化异常日志文件获取步骤并进一步提供颗粒度更细的异常信息供用户分析,极大地提升了程序异常问题的分析效率。

【技术实现步骤摘要】

本专利技术涉及操作系统相关,特别是一种程序异常分析方法、装置、电子设备及存储介质


技术介绍

1、在嵌入式汽车电子领域中,以微控制单元(micro controller unit,mcu)为主控的系统应用较为广泛。在微控制单元调试开发中,常常会遇到微控制单元的程序运行触发异常,导致微控制单元死机的情况。

2、现有的调试异常死机的方式,基本需要借助调试器通过调试口连接微控制单元处理器后在线调试,该调试方法需要预先在微控制单元中添加监控模块,监控模块是运行在微控制单元的一段程序以监控被调试程序的运行,调试器通过协议的方式请求控制、访问被调试程序的地址空间或某些寄存器,监控模块接收到请求后对地址空间或某些寄存器直接进行访问,并把获取到的异常日志发送给调试器,并最终将异常日志显示给技术人员,技术人员需对异常日志做进一步人工解析才能得到程序异常信息。这种处理方式需要车辆微控制单元停止运行才能进行调试,而且调试过程会改变微控制单元的运行周期、频率,很容易误操作导致处理器重启破坏现场,对技术人员要求高,异常处理效率低。


技术实现思路

1、基于此,有必要针对现有技术存在需要工程师非常熟悉日志文件中函数栈的设置方式,才能对日志文件进行分析,为分析解决问题带来不便的技术问题,提供一种程序异常分析方法、装置、电子设备及存储介质。

2、本专利技术提供一种程序异常分析方法,包括:

3、读取记录程序运行数据的日志文件并根据预设的异常判断规则判断程序是否发生异常,所述日志文件包括程序触发异常时上下文切换区域中所保存的多个函数的函数栈内容,每个所述函数栈内容包括对应函数的函数信息;

4、获取程序触发异常时的日志文件,基于所述日志文件的文件结构对所述日志文件进行解析,从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,并输出所述函数信息。

5、进一步地,每个所述函数栈内容包括用于标识所述函数栈类型的元数据,所述从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,具体包括:

6、依次查找每个函数栈内容,确定所述函数栈内容的元数据所标识的函数栈类型;

7、获取所述函数栈类型所定义的函数信息。

8、更进一步地,所述日志文件中,多个所述函数栈内容依次排列,所述获取所述函数栈类型所定义的函数信息,具体包括:

9、从所述日志文件中,以所述日志文件起始的函数栈内容作为当前函数栈内容,执行当前函数栈内容操作,所述当前函数栈内容操作包括:确定所述当前函数栈内容的元数据所标识的函数栈类型,从当前函数栈内容中,获取所述函数栈类型所对应长度的函数信息;

10、如果判断当前函数栈内容为所述日志文件最后的函数栈内容,则结束,否则将当前函数栈内容的长度之后紧邻的函数栈内容作为当前函数栈内容,再次执行所述当前函数栈内容操作。

11、更进一步地,所述函数信息包括函数地址,所述获取所述函数栈类型所定义的函数信息,具体包括:

12、从所述函数栈内容中,在所述函数栈类型所定义的函数地址位置中获取所述函数地址。

13、再进一步地,所述输出所述函数信息,具体包括:

14、获取所述函数栈内容中的函数地址确定对应的函数名称;

15、输出所述函数名称。

16、再进一步地,所述获取所述函数栈内容中的函数地址确定对应的函数名称,具体包括:

17、获取地址名称对应文件,其中所述地址名称对应文件记录每个函数地址与函数名称的对应关系;

18、从所述地址名称对应文件中,获取所述函数栈内容中的函数地址所对应的函数名称。

19、更进一步地,所述函数信息包括函数执行时的寄存器信息,所述获取所述函数栈类型所定义的函数信息,具体包括:

20、从所述函数栈内容中,在所述函数栈类型所定义的寄存器位置中获取所述寄存器信息。

21、本专利技术提供一种程序异常分析装置,包括:

22、日志文件读取模块,用于读取记录程序运行数据的日志文件并根据预设的异常判断规则判断程序是否发生异常,所述日志文件包括程序触发异常时上下文切换区域中所保存的多个函数的函数栈内容,每个所述函数栈内容包括对应函数的函数信息;

23、日志文件解析模块,用于获取程序触发异常时的日志文件,基于所述日志文件的文件结构对所述日志文件进行解析,从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,并输出所述函数信息。

24、本专利技术提供一种电子设备,包括:

25、至少一个处理器;以及,

26、与至少一个所述处理器通信连接的存储器;其中,

27、所述存储器存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行,以使至少一个所述处理器能够执行如前所述的程序异常分析方法。

28、本专利技术提供一种存储介质,所述存储介质存储计算机指令,当计算机执行所述计算机指令时,用于执行如前所述的程序异常分析方法的所有步骤。

29、本专利技术直接获取程序发生异常时上下文切换区中保存的日志文件,并按照日志文件的文件结构对日志文件进行解析,从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,并输出所述函数信息。用户无需再借助外部调试器定位异常日志文件,并且仅需分析异常日志的函数信息即可。本专利技术简化异常日志文件获取步骤并进一步提供颗粒度更细的异常信息供用户分析,极大地提升了程序异常问题的分析效率。

本文档来自技高网...

【技术保护点】

1.一种程序异常分析方法,其特征在于,包括:

2.根据权利要求1所述的程序异常分析方法,其特征在于,每个所述函数栈内容包括用于标识所述函数栈类型的元数据,所述从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,具体包括:

3.根据权利要求2所述的程序异常分析方法,其特征在于,所述日志文件中,多个所述函数栈内容依次排列,所述获取所述函数栈类型所定义的函数信息,具体包括:

4.根据权利要求2所述的程序异常分析方法,其特征在于,所述函数信息包括函数地址,所述获取所述函数栈类型所定义的函数信息,具体包括:

5.根据权利要求4所述的程序异常分析方法,其特征在于,所述输出所述函数信息,具体包括:

6.根据权利要求5所述的程序异常分析方法,其特征在于,所述获取所述函数栈内容中的函数地址确定对应的函数名称,具体包括:

7.根据权利要求2所述的程序异常分析方法,其特征在于,所述函数信息包括函数执行时的寄存器信息,所述获取所述函数栈类型所定义的函数信息,具体包括:

8.一种程序异常分析装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种存储介质,其特征在于,所述存储介质存储计算机指令,当计算机执行所述计算机指令时,用于执行如权利要求1至7任一项所述的程序异常分析方法的所有步骤。

...

【技术特征摘要】

1.一种程序异常分析方法,其特征在于,包括:

2.根据权利要求1所述的程序异常分析方法,其特征在于,每个所述函数栈内容包括用于标识所述函数栈类型的元数据,所述从所述日志文件中依次查找每个所述函数栈内容,获取每个所述函数栈内容的函数信息,具体包括:

3.根据权利要求2所述的程序异常分析方法,其特征在于,所述日志文件中,多个所述函数栈内容依次排列,所述获取所述函数栈类型所定义的函数信息,具体包括:

4.根据权利要求2所述的程序异常分析方法,其特征在于,所述函数信息包括函数地址,所述获取所述函数栈类型所定义的函数信息,具体包括:

5.根据权利要求4所述的程序异常分析方...

【专利技术属性】
技术研发人员:林玉洲
申请(专利权)人:北京车和家信息技术有限公司
类型:发明
国别省市:

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

1