一种输出调试信息的方法及装置与流程

文档序号:12905972阅读:149来源:国知局
一种输出调试信息的方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种输出调试信息的方法及装置。



背景技术:

随着嵌入式技术的发展,嵌入式设备更新换代的速度越来越快。

不管是开发阶段还是维护阶段都需要人力对新设备发生的故障进行分析和解决,这些过程中都少不了调试。

特别是在维护过程中,一旦设备启动过程中发送宕机,由于现有的操作系统不能输出调试信息,所以维护人员很难准确定位问题所在。

现有技术中,在设备发送宕机后,维护人员需要重启操作系统并重新编译系统版本,人为修改操作系统中信息输出的级别,使得操作系统可以输出调试信息;然后再次重启操作系统,此时操作系统才可以输出调试信息,而维护人员根据输出的调试信息查看到底哪里出现了问题、出现了什么问题,进而修复该问题。

如上所述,现有技术中输出调试信息的过程较为复杂、定位问题较慢导致解决问题的效率较低。



技术实现要素:

本申请提供的输出调试信息的方法及装置,以解决现有技术中输出调试信息的过程较为复杂、定位问题较慢导致解决问题的效率较低的问题。

根据本申请实施例提供的一种输出调试信息的方法,所述方法包括:

装载程序bootloader在引导操作系统前,获取预设的标记值;所述标记值用于控制操作系统修改调试信息输出的级别;

所述bootloader将所获取到的标记值保存到参数队列中;

在所述bootloader引导所述操作系统过程中,将保存有所述标识值的参数队列传递给所述操作系统;

所述操作系统接收到所述bootloader传递的参数队列后,获取该参数队列中保存的标记值;

所述操作系统判断所述标识值是否为预设值;

在所述标识值为预设值的情况下,所述操作系统修改调试信息输出的级别,使得所述调试信息输出的级别高于或等于最低输出级别。

可选的,所述bootloader将所获取到的标记值保存到参数队列中,具体包括:

所述bootloader将所获取到的标记值保存在参数队列的尾部。

可选的,所述操作系统接收到所述bootloader传递的参数队列后,所述方法还包括:

对所述参数队列进行校验;

在校验通过的情况下,执行获取该参数队列中保存的标记值的步骤。

可选的,所述校验包括循环冗余校验码crc校验。

可选的,所述标记值为至少4字节的常数。

根据本申请实施例提供的一种输出调试信息的装置,所述装置包括:

获取单元,装载程序bootloader在引导操作系统前,获取预设的标记值;所述标记值用于控制操作系统修改调试信息输出的级别;

保存单元,所述bootloader将所获取到的标记值保存到参数队列中;

传递单元,在所述bootloader引导所述操作系统过程中,将保存有所述标识值的参数队列传递给所述操作系统;

接收单元,所述操作系统接收到所述bootloader传递的参数队列后,获取该参数队列中保存的标记值;

判断单元,所述操作系统判断所述标识值是否为预设值;

修改单元,在所述标识值为预设值的情况下,所述操作系统修改调试信息输出的级别,使得所述调试信息输出的级别高于或等于最低输出级别。

可选的,所述保存单元,具体包括:

保存子单元,所述bootloader将所获取到的标记值保存在参数队列的尾部。

可选的,所述接收单元,具体包括:

接收子单元,在所述bootloader引导所述操作系统过程中,对所述参数队列进行校验;

获取子单元,在校验通过的情况下,获取该参数队列中保存的标记值。

可选的,所述校验包括循环冗余校验码crc校验。

可选的,所述标记值为至少4字节的常数。

本申请实施例中,通过bootloader向操作系统传递一个预设的用于控制所述操作系统修改信息输出的级别的标记值,在该标记值为预设值的情况下可以令所述操作系统修改调试信息输出的级别,从而实现输出调试信息。如此,在设备发送宕机后,用户只需重启设备并将bootloader下的标记值设置为所述预设值,再次重启设备后所述操作系统就可以输出调试信息了。大大简化了操作过程,无需重新编译系统版本,从而可以快速定位问题,提高问题解决的效率。

附图说明

图1是本申请一实施例提供的输出调试信息的方法的流程图;

图2是本申请输出调试信息的装置所在设备的一种硬件结构图;

图3是本申请一实施例提供的输出调试信息的装置的模块图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如前所述,现有技术中,设备的操作系统一般都不会输出调试信息;所以一旦设备发生宕机,维护人员无法快速定位问题;只能重启操作系统并重新编译系统版本,人为修改操作系统中信息输出的级别,使得操作系统可以输出调试信息;然后再次重启操作系统,此时操作系统才可以输出调试信息。这样的方式,显然会使得解决问题的效率较低。而且,通常,解决问题后,维人员还必须将编译过的系统版本再重新改回原先的系统版本,进一步增大了维护人员的工作量。再有的,由于都是维护人员人工编译系统版本,容易出现编译错误等情况,过程不可控。

为了解决上述问题,请参见图1,为本申请一实施例提供的输出调试信息的方法的流程图,包括以下步骤:

步骤110:装载程序bootloader在引导操作系统前,获取预设的标记值;所述标记值用于控制操作系统修改调试信息输出的级别。

在相关技术中,bootloader是在操作系统启动之前运行的。可以初始化硬件设备、建立内存空间映射图等,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

本实施例中,bootloader下可以新提供一个用于配置标记的方法。一般的,该标记默认的标记值表示操作系统正常输出,即与原有操作系统一样不输出调试信息。

在设备发生宕机后,用户可以重启设备并通过命令行、配置选项或配置文件等方式,在bootloader重新配置该标记的标记值,例如将该标记值配置为可以控制操作系统输出调试信息的值。然后,再次重启设备。

设备每次重启后,其装载程序bootloader在引导操作系统前,都需要获取预设的标记值。

值得一提的是,所述标记值为大于4字节的常数。例如111111。

通过将标记值设置的较为复杂,可以避免该标记值与其它参数值重复的情况,避免发送不必要的错误。

步骤120:所述bootloader将所获取到的标记值保存到参数队列中。

本实施例中,所述bootloader引导操作系统启动过程中,需要将生成的参数队列传递给操作系统。该参数队列中参数都是操作系统启动所必须的包括如pmc,ebi,smc,sdram,usart等。

本实施例中,所述bootloader可以将所获取到的标记值保存到参数队列中。

具体地,所述bootloader将所获取到的标记值保存在参数队列的尾部。

当然,在其它的一些实施例中,还可以是将所述标记值保存在参数队列的其它的任意位置。

步骤130:在所述bootloader引导所述操作系统过程中,将保存有所述标识值的参数队列传递给所述操作系统。

本实施例中,在所述bootloader启动完毕后,可以引导操作系统启动;而在所述bootloader引导所述操作系统过程中,可以将保存有所述标识值的参数队列传递给所述操作系统。

步骤140:所述操作系统接收到所述bootloader传递的参数队列后,获取该参数队列中保存的标记值。

本实施例中,所述操作系统接收到所述bootloader传递的参数队列后,还是按照原有的流程启动操作系统;不同之处在于,由于该参数队列中新增了一个标记值,所以操作系统需要获取该参数队列中保存的标记值。

步骤150:所述操作系统判断所述标识值是否为预设值。

所述预设值可以人为设置的一个值。

如果所述标识值为预设值,进一步执行后续步骤160;

如果所述标识值不为预设值,则说明无需输出调试信息,所以操作系统无需针对该标识值做处理。

步骤160:在所述标识值为预设值的情况下,所述操作系统修改调试信息输出的级别,使得所述调试信息输出的级别高于或等于最低输出级别。

本实施例中,在所述标识值为预设值的情况下,说明用户需要操作系统输出调试信息,所以所述操作系统需要修改调试信息输出的级别,使得所述调试信息输出的级别高于或等于最低输出级别。

举例说明,操作系统中最低输出级别为6级;在正常情况下,调试信息输出的级别通常低于6级;

如果bootloader传递过来的标记值为预设值,则所述操作系统需要将调试信息输出的级别修改为大于或等于6级。这样,就可以输出调试信息,用户也就可以根据输出的调试信息定位问题。

本申请实施例中,通过bootloader向操作系统传递一个预设的用于控制所述操作系统修改信息输出的级别的标记值,在该标记值为预设值的情况下可以令所述操作系统修改调试信息输出的级别,从而实现输出调试信息。如此,在设备发送宕机后,用户只需重启设备并将bootloader下的标记值设置为所述预设值,再次重启设备后所述操作系统就可以输出调试信息了。大大简化了操作过程,无需重新编译系统版本,从而可以快速定位问题,提高问题解决的效率。

在本申请的另一个具体地实施例中,步骤130中所述操作系统接收到所述bootloader传递的参数队列后,所述方法还包括:

对所述参数队列进行校验;

在校验通过的情况下,执行获取该参数队列中保存的标记值的步骤。

本实施例中,为了保证操作系统的启动安全,对于接收到的参数队列,还可以对所述参数队列进行校验;只有校验通过的队列参数,才可以使用该队列参数。

值得一提的是,所述校验可以包括crc(cyclicredundancycheck,循环冗余校验码)校验,md5(messagedigestalgorithm5,消息摘要算法第五版)校验或奇偶校验等。

与前述输出调试信息的方法实施例相对应,本申请还提供了输出调试信息的装置的实施例。

本申请输出调试信息的装置的实施例可以分别应用在嵌入式设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请输出调试信息的装置所在设备的一种硬件结构图,除了图2所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该输出调试信息的的实际功能,还可以包括其他硬件。

请参见图3,为本申请一实施例提供的输出调试信息的装置的模块图,所述装置可以包括:获取单元210、保存单元220、传递单元230、接收单元240、判断单元250及修改单元260。

其中,获取单元210,装载程序bootloader在引导操作系统前,获取预设的标记值;所述标记值用于控制操作系统修改调试信息输出的级别;

保存单元220,所述bootloader将所获取到的标记值保存到参数队列中;

传递单元230,在所述bootloader引导所述操作系统过程中,将保存有所述标识值的参数队列传递给所述操作系统;

接收单元240,所述操作系统接收到所述bootloader传递的参数队列后,获取该参数队列中保存的标记值;

判断单元250,所述操作系统判断所述标识值是否为预设值;

修改单元260,在所述标识值为预设值的情况下,所述操作系统修改调试信息输出的级别,使得所述调试信息输出的级别高于或等于最低输出级别。

在一个可选的实现方式中:

所述保存单元220,具体包括:

保存子单元,所述bootloader将所获取到的标记值保存在参数队列的尾部。

在一个可选的实现方式中:

所述接收单元240,具体包括:

接收子单元,在所述bootloader引导所述操作系统过程中,对所述参数队列进行校验;

获取子单元,在校验通过的情况下,获取该参数队列中保存的标记值。

在一个可选的实现方式中:

所述校验包括循环冗余校验码crc校验。

在一个可选的实现方式中:

所述标记值为至少4字节的常数。

通过本申请实施例,bootloader可以向操作系统传递一个预设的用于控制所述操作系统修改信息输出的级别的标记值,在该标记值为预设值的情况下可以令所述操作系统修改调试信息输出的级别,从而实现输出调试信息。如此,在设备发送宕机后,用户只需重启设备并将bootloader下的标记值设置为所述预设值,再次重启设备后所述操作系统就可以输出调试信息了。大大简化了操作过程,无需重新编译系统版本,从而可以快速定位问题,提高问题解决的效率。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1