一种调试信息抓取方法及其装置制造方法及图纸

技术编号:26504553 阅读:25 留言:0更新日期:2020-11-27 15:32
本申请实施例提供了一种调试信息抓取方法及其装置,方法应用于系统,系统包括缓存区A和缓存区B,方法包括:关中断;系统对第一日志参数进行打印输出,获得第一调试信息;将第一调试信息存储至缓存区A;开中断;系统将缓存区域从缓存区A切换至缓存区B;系统将缓存区A中的信息写到日志文件中,并将缓存区A中的信息清零;其中,缓存区A中的信息至少包括第一调试信息;系统将缓存区域从缓存区B切换至缓存区A。采用本申请的方法,能够避免现有技术中的缺陷,本实施例具有通用性。

【技术实现步骤摘要】
一种调试信息抓取方法及其装置
本申请涉及电子
,尤其涉及一种调试信息抓取方法及其装置。
技术介绍
目前市面上有各种各样的终端设备,在对终端设备的嵌入系统软件的开发过程中,工程师们通常需要进行调试,最典型的调试方法是在代码中添加打印函数,常用的打印函数为printf和printk,其函数原型分别为intprintf(char*fmt,...)和intprintk(char*fmt,...),当然也有厂商自己定义打印函数。打印函数是把要打印的信息通过UART/USB/JTAG口实时输出,但此类型的打印函数也存在一些弊端,例如,大量使用会严重影响嵌入式系统的性能;如果在中断中使用,或者频率使用,会引起系统或某个功能出现异常;在掉电后调试信息会丢失等。
技术实现思路
本申请实施例公开了一种调试信息抓取方法及其装置,旨在解决现有技术中抓取日志函数不能在中断中大量使用、大量使用影响系统性能以及掉电后日志易丢失的问题。第一方面,本申请实施例提供了一种调试信息抓取方法,该方法应用于系统,所述系统包括缓存区A和缓存区B,所述方法包括:关中断;所述系统对第一日志参数进行打印输出,获得第一调试信息;将所述第一调试信息存储至所述缓存区A;开中断;所述系统将缓存区域从所述缓存区A切换至所述缓存区B;所述系统将所述缓存区A中的信息写到日志文件中,并将所述缓存区A中的信息清零;其中,所述缓存区A中的信息至少包括所述第一调试信息;所述系统将缓存区域从所述缓存区B切换至所述缓存区A。可以看到,系统对第一日志参数进行打印输出,获得第一调试信息,并将第一调试信息存储至缓存区A;在将缓存区A中的信息写入到日志文件之前,需要将缓存区域切换为缓存区B,使用缓存区B存储调试信息;将缓存区A中的信息写入到日志文件,并将缓存区A中的信息清零;这样缓存区A中的信息就存储至日志文件中了,再将缓存区域切换为缓存区A,使用缓存区A存储调试信息,可以将缓存区B中的信息写入到日志文件中,再将缓存区B中的信息清零,以此类推,使用缓存区A和缓存区B交替存储调试信息,再将缓存区A和缓存区B中的信息交替写入到日志文件中。本申请中,在对日志参数进行打印之前,进行了关闭中断的操作,这样能够防止其他任务打断该打印输出过程;系统设置了两个缓存区,两个缓存区均用于缓存调试信息,在将其中一个缓存区中的调试信息存储至日志文件之前,切换为另一个缓存区对调试信息进行存储,这样一个缓存区执行读入操作,一个缓存区执行写操作,避免了现有技术中打印调试信息的任务与存储调试信息的任务同时操作一个缓存区而产生冲突的情况;系统将其中一个缓存区中的数据写到日志文件中时,完全不会影响打印另一个缓存区的调试信息的操作,提高了打印调试信息的效率,又避免了现有技术中无法在中断中大量打印调试信息的操作。基于第一方面,在可能的实施例中,在所述系统将缓存区域从所述缓存区A切换至所述缓存区B之后,所述方法还包括:关中断;所述系统对第二日志参数进行打印输出,获得第二调试信息;将所述第二调试信息存储至所述缓存区B;开中断。可以理解,在将缓存区域切换为缓存区B之后,可以将打印输出的第二调试信息存储至缓存区B中,且在对第二日志参数进行打印输出之前,需要关闭中断,防止打印输出任务被中断。基于第一方面,在可能的实施例中,在所述系统将缓存区域从所述缓存区A切换至所述缓存区B之前,所述方法还包括:创建写日志文件的任务;所述任务存在睡眠状态和唤醒状态;相应的,所述系统将缓存区域从所述缓存区A切换至所述缓存区B,包括:在所述任务处于唤醒状态时,所述系统将缓存区域从所述缓存区A切换至所述缓存区B。可以看到,预先创建写日志文件的任务,该任务存在睡眠状态和唤醒状态两种状态,该任务的状态是通过定时器来控制的。自上次写日志文件操作完毕开始计时,当达到设置的时长时,任务处于唤醒状态,会执行写日志文件的操作,当该任务完成后,再次计时,同时任务处于睡眠状态,直到再次到达设置的时长,任务再次处于唤醒状态。在任务处于睡眠状态的情况下,一个缓存区域A(B)用于存储调试信息,在任务处于唤醒状态时,切换缓存区域,也就是将缓存区A(B)切换为缓存区域B(A),然后用缓存区域B(A)存储调试信息,将缓存区A(B)中的调试信息写入到日志文件中,其中任务睡眠状态的睡眠时长可以根据缓存区域的大小和实际应用中调试信息的多少来定义。基于第一方面,在可能的实施例中,在所述系统将所述缓存区A中的信息写到日志文件中之前,所述方法还包括:所述系统判断所述日志文件的当前大小是否大于或等于设定的阈值;经判断,在所述日志文件的当前大小大于或等于设定的阈值的情况下,对所述日志文件中的信息进行处理。可以理解,在将缓存区A中的信息写到日志文件中之前,需要判断日志文件的当前大小是否大于或等于阈值,若日志文件的当前大小大于或等于阈值,需要对日志文件中的信息进行处理,再将缓存区中的信息存储至日志文件,此步骤是防止日志文件过大,超过系统的剩余存储空间。基于第一方面,在可能的实施例中,在所述系统将所述缓存区A中的信息写到日志文件中之后,所述方法还包括:所述系统将所述日志文件导出至计算机中,并通过所述计算机显示所述日志文件。可以看到,在将缓存区中的信息写到日志文件之后,可以通过显示屏显示日志文件。第二方面,本申请实施例提供了一种调试信息抓取装置,包括:中断处理单元,用于关中断;打印输出单元,用于对第一日志参数进行打印输出,获得第一调试信息;存储单元,用于将所述第一调试信息存储至所述缓存区A;所述中断处理单元,还用于开中断;切换单元,用于将缓存区域从所述缓存区A切换至所述缓存区B;写入单元,用于将所述缓存区A中的信息写到日志文件中,并将所述缓存区A中的信息清零;其中,所述缓存区A中的信息至少包括所述第一调试信息;所述切换单元,还用于将缓存区域从所述缓存区B切换至所述缓存区A。基于第二方面,在可能的实施方式中,所述打印输出单元,还用于对第二日志参数进行打印输出,获得第二调试信息;所述存储单元,还用于将所述第二调试信息存储至所述缓存区B。基于第二方面,在可能的实施方式中,所述装置还包括初始化单元,所述初始化单元,用于创建写日志文件的任务;所述任务存在睡眠状态和唤醒状态;相应的,所述切换单元还用于,在所述任务处于唤醒状态的情况下,将缓存区域从所述缓存区A切换至所述缓存区B。基于第二方面,在可能的实施方式中,所述判断单元,还用于判断所述日志文件的当前大小是否大于或等于设定的阈值;所述写入单元,还用于经判断,在所述日志文件的当前大小大于或等于设定的阈值的情况下,对所述日志文件中的信息进行处理。基于第二方面,在可能的实施方式中,所述装置还包括导出单元,所述导出单元,用于将所述日志文件导出至计算机中,并通过所述计算机显示所述日志文件。上述装置中各个功能单元用于实现第一方面描述的方法或第一方面的任意实施例所描述的方法。第三方面,本申请实本文档来自技高网...

【技术保护点】
1.一种调试信息抓取方法,其特征在于,该方法应用于系统,所述系统包括缓存区A和缓存区B,所述方法包括:/n关中断;所述系统对第一日志参数进行打印输出,获得第一调试信息;将所述第一调试信息存储至所述缓存区A;开中断;/n所述系统将缓存区域从所述缓存区A切换至所述缓存区B;所述系统将所述缓存区A中的信息写到日志文件中,并将所述缓存区A中的信息清零;其中,所述缓存区A中的信息至少包括所述第一调试信息;/n所述系统将缓存区域从所述缓存区B切换至所述缓存区A。/n

【技术特征摘要】
1.一种调试信息抓取方法,其特征在于,该方法应用于系统,所述系统包括缓存区A和缓存区B,所述方法包括:
关中断;所述系统对第一日志参数进行打印输出,获得第一调试信息;将所述第一调试信息存储至所述缓存区A;开中断;
所述系统将缓存区域从所述缓存区A切换至所述缓存区B;所述系统将所述缓存区A中的信息写到日志文件中,并将所述缓存区A中的信息清零;其中,所述缓存区A中的信息至少包括所述第一调试信息;
所述系统将缓存区域从所述缓存区B切换至所述缓存区A。


2.根据权利要求1所述的方法,其特征在于,在所述系统将缓存区域从所述缓存区A切换至所述缓存区B之后,所述方法还包括:
关中断;所述系统对第二日志参数进行打印输出,获得第二调试信息;将所述第二调试信息存储至所述缓存区B;开中断。


3.根据权利要求1所述的方法,其特征在于,在所述系统将缓存区域从所述缓存区A切换至所述缓存区B之前,所述方法还包括:
创建写日志文件的任务;所述任务存在睡眠状态和唤醒状态;
相应的,所述系统将缓存区域从所述缓存区A切换至所述缓存区B,包括:
在所述任务处于唤醒状态时,所述系统将缓存区域从所述缓存区A切换至所述缓存区B。


4.根据权利要求1所述的方法,其特征在于,在所述系统将所述缓存区A中的信息写到日志文件中之前,所述方法还包括:
所述系统判断所述日志文件的当前大小是否大于或等于设定的阈值;
经判断,在所述日志文件的当前大小大于或等于设定的阈值的情况下,对所述日志文件中的信息进行处理。


5.根据权利要求1-4任一项所述的方法,其特征在于,在所述系统将所述缓存区A中的信息写到日志文件中之后,所述方法还包括:
所述系统将所述日志文件导出至...

【专利技术属性】
技术研发人员:刘慧
申请(专利权)人:深圳市有方科技股份有限公司
类型:发明
国别省市:广东;44

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

1