CN111694704B - 调试信息输出方法、装置、电子设备及存储介质 - Google Patents

调试信息输出方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111694704B
CN111694704B CN201910191056.2A CN201910191056A CN111694704B CN 111694704 B CN111694704 B CN 111694704B CN 201910191056 A CN201910191056 A CN 201910191056A CN 111694704 B CN111694704 B CN 111694704B
Authority
CN
China
Prior art keywords
information
module
target
identifier
printed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910191056.2A
Other languages
English (en)
Other versions
CN111694704A (zh
Inventor
张晓奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910191056.2A priority Critical patent/CN111694704B/zh
Publication of CN111694704A publication Critical patent/CN111694704A/zh
Application granted granted Critical
Publication of CN111694704B publication Critical patent/CN111694704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了调试信息输出方法、装置、电子设备及存储介质,该方法包括:在待调试设备启动后,检测待调试设备是否连接有移动存储设备;在待调试设备连接有移动存储设备时,获取移动存储设备中的配置文件,其中,配置文件包括信息属性数据;按照信息属性数据,确定待打印调试信息的目标模块及目标模块中待打印的调试信息的目标类型;调用预设打印输出函数,打印目标模块的目标类型的目标调试信息,并将目标调试信息保存到移动存储设备中。通过移动存储设备中的配置文件,实现将调试信息存储到移动存储设备中,不用派遣技术人员去现场打印,打印完成后可以将移动存储设备中的数据远程发送给技术人员即可,提高了调试信息的获取效率。

Description

调试信息输出方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及调试信息输出方法、装置、电子设备及存储介质。
背景技术
在各种设备的使用过程中,难免会遇到各种各样的问题,由于设备通常是运行在专网而非公网中,无法远程访问,只能通过连入串口线的方式收集调试信息,而且操作过程需要进行安全验证,普通用户很难操作,因此通常的做法是:用户拨打技术支持电话,请求技术支持;然后技术支持方根据实际情况,安排技术人员到现场进行调试信息收集(主要是收集串口信息);最后将问题和收集到的调试信息返回给研发人员进行定位解决。
在上述过程中,需要安排人员去往各个现场,一方面人手不够,另一方面处理不及时,导致调试信息获取效率低。
发明内容
本申请实施例的目的在于提供一种调试信息输出方法、装置、电子设备及存储介质,以实现增加调试信息的获取效率。具体技术方案如下:
第一方面,本申请实施例提供了一种调试信息输出方法,应用于待调试设备,所述方法包括:
在所述待调试设备启动后,检测所述待调试设备是否连接有移动存储设备;
在所述待调试设备连接有所述移动存储设备时,获取所述移动存储设备中的配置文件,其中,所述配置文件包括信息属性数据;
按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型,其中,所述目标类型包括目标信息级别;
调用预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中。
可选的,所述在所述待调试设备连接有移动存储设备时,获取所述移动存储设备中的配置文件,包括:
在所述待调试设备连接有移动存储设备时,检测所述移动存储设备中是否存储有配置文件;
当在所述移动存储设备中检测到配置文件时,获取所述移动存储设备中的配置文件。
可选的,所述配置文件还包括密钥数据,所述方法还包括:
检测所述密钥数据是否正确;
所述按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型,包括:
在所述密钥数据正确时,按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型。
可选的,所述信息属性数据,包括信息级别标识、显示格式标识、模块标识及子模块标识;
所述按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型,包括:
按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;
按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型,其中,所述目标类型包括目标信息级别及目标显示格式。
可选的,所述配置文件中还包括:重定向开关信息,所述调用预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中,包括:
在所述重定向开关信息表征需要重定向时,调用预设重定向函数,将预设打印输出函数的输出位置重定向为所述移动存储设备的指定文本文件;
通过所述预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述指定文本文件中。
可选的,在按照所述重定向信息,调用预设重定向函数,将预设打印输出函数的输出位置重定向为所述移动存储设备的指定文本文件之前,所述方法还包括:
获取当前时间,按照所述当前时间在所述移动存储设备中建立指定文本文件,其中,所述指定文本文件的命名中包含所述当前时间。
可选的,本申请实施例的调试信息输出方法还包括:
获取文件配置信息;
按照所述文件配置信息,配置所述移动存储设备的配置文件。
第二方面,本申请实施例提供了一种调试信息输出装置,应用于待调试设备,所述装置包括:
存储设备检测模块,用于在所述待调试设备启动后,检测所述待调试设备是否连接有移动存储设备;
配置文件获取模块,用于在所述待调试设备连接有所述移动存储设备时,获取所述移动存储设备中的配置文件,其中,所述配置文件包括信息属性数据;
待打印信息确定模块,用于按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型,其中,所述目标类型包括目标信息级别;
调试信息打印模块,用于调用预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中。
可选的,所述配置文件获取模块,包括:
配置文件检测子模块,用于在所述待调试设备连接有移动存储设备时,检测所述移动存储设备中是否存储有配置文件;
配置文件读取子模块,用于当在所述移动存储设备中检测到配置文件时,获取所述移动存储设备中的配置文件。
可选的,所述配置文件还包括密钥数据,本申请实施例的调试信息输出装置还包括:
密钥数据检测模块,用于检测所述密钥数据是否正确;
所述待打印信息确定模块,具体用于:
在所述密钥数据正确时,按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印的调试信息的目标类型。
可选的,所述信息属性数据,包括信息级别标识、显示格式标识、模块标识及子模块标识;
所述待打印信息确定模块,包括:
目标模块确定子模块,用于按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;
目标模块确定子模块,用于按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型,其中,所述目标类型包括目标信息级别及目标显示格式。
可选的,所述配置文件中还包括:重定向开关信息,所述调试信息打印模块,包括:
重定向函数调用子模块,用于在所述重定向开关信息表征需要重定向时,调用预设重定向函数,将预设打印输出函数的输出位置重定向为所述移动存储设备的指定文本文件;
打印输出函数调用子模块,用于通过所述预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述指定文本文件中。
可选的,本申请实施例的调试信息输出还包括:
指定文本文件建立模块,用于获取当前时间,按照所述当前时间在所述移动存储设备中建立指定文本文件,其中,所述指定文本文件的命名中包含所述当前时间。
可选的,本申请实施例的调试信息输出还包括:
配置信息获取模块,用于获取文件配置信息;
配置文件配置模块,用于按照所述文件配置信息,配置所述移动存储设备的配置文件。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一调试信息输出方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一调试信息输出方法。
本申请实施例提供的调试信息输出方法、装置、电子设备及存储介质,在待调试设备启动后,检测待调试设备是否连接有移动存储设备;在待调试设备连接有移动存储设备时,获取移动存储设备中的配置文件,其中,配置文件包括信息属性数据;按照信息属性数据,确定待打印调试信息的目标模块及目标模块中待打印的调试信息的目标类型;调用预设打印输出函数,打印目标模块的目标类型的目标调试信息,并将目标调试信息保存到移动存储设备中。通过移动存储设备中的配置文件,实现将调试信息存储到移动存储设备中,不用派遣技术人员去现场打印,打印完成后可以将移动存储设备中的数据远程发送给技术人员即可,提高了调试信息的获取效率。并且移动存储设备中存储的为配置文件,并非可执行程序,相比于调用移动存储设备中的可执行程序,待调试设备调用自身可执行程序的效率更高。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的调试信息输出方法的第一种示意图;
图2为本申请实施例的调试信息输出方法的第二种示意图;
图3为本申请实施例的调试信息输出方法的第三种示意图;
图4为本申请实施例的调试信息输出装置的一种示意图;
图5为本申请实施例的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例中的术语进行说明。
调试级别:由于设备功能越来越强大,设备中添加的打印信息也越来越多,为了方便显示,会对这些调试信息进行模块划分和级别划分,比如模块划分为存储模块、预览模块,比如级别划分为一般打印信息级别和错误打印信息级别。程序可以根据用户设定的模块和打印级别输出相关的调试信息。比如用户配置输出打印信息为存储模块的错误级别信息,那么最终的输出结果就只会显示在存储模块逻辑中的所有报错信息;其它模块的内容以及存储模块的其它级别的信息,不会输出,方便用户提取有用的调试信息。
调试信息:指的是设备串口输出的打印信息,这些打印信息包括研发人员主动在程序中增加的内容,还包括嵌入式Linux***自身的一些打印信息。
配置文件:是指放到移动存储设备中的一个文件,里面的内容包括了控制设备调试打印的相关信息,包括模块、打印级别等内容。
为了提高调试信息的获取效率,本申请实施例提供了一种调试信息输出方法,应用于待调试设备,参见图1,该方法包括:
S101,在上述待调试设备启动后,检测上述待调试设备是否连接有移动存储设备。
本申请实施例的调试信息输出方法应用于待调试设备,因此可以通过待调试设备执行,待调试设备包括处理器及存储器,存储器中存放有计算机程序,处理器在执行存储器中存放的计算机程序时,能够实现本申请实施例的调试信息输出方法。待调试设备在启动过程中,检测该待调试设备是否连接有移动存储设备,移动存储设备可以为U盘、移动硬盘或光盘等。
正常情况下,用户将存储有配置文件的移动存储设备连接在待调试设备上,并启动待调试设备,在待调试设备启动时,自动检测是否有移动存储设备接入。而无需在待调试设备中创建专门的守护进程,不需要专门的守护进程时刻检测移动存储设备是否存在。用户只需要将配置文件拷入到移动存储设备中,然后接入待调试设备,并启动待调试设备即可。待调试设备在启动上电的时候,会检测一次移动存储设备,完成判断工作,无需创建专门的守护进程,从而节约***资源。
S102,在上述待调试设备连接有上述移动存储设备时,获取上述移动存储设备中的配置文件,其中,上述配置文件包括信息属性数据。
配置文件可以采用特定的命名方式或者可以存储在指定目录中,以方便待调试设备获取该配置文件。配置文件中包括信息属性数据,信息属性数据表征待打印调试信息的模块及待打印调试信息的类型。可选的,配置文件中还可以包括检验字段,用于校验配置文件是否完整。
在获取移动存储设备中的配置文件之前,待调试设备还可以先检查移动存储设备中是否有配置文件。可选的,上述在上述待调试设备连接有移动存储设备时,获取上述移动存储设备中的配置文件,包括:
步骤一,在上述待调试设备连接有移动存储设备时,检测上述移动存储设备中是否存储有配置文件。
待调试设备检测移动存储设备中是否存储有配置文件,可以为待调试设备遍历移动存储设备,以检测移动存储设备中是否存储有配置文件;还可以为待调试设备检测指定路径或文件夹下是否有配置文件等。
步骤二,当在上述移动存储设备中检测到配置文件时,获取上述移动存储设备中的配置文件。
当在移动存储设备中未检测到配置文件时,待调试设备放弃本次调试信息打印,执行待调试设备设定的其它功能。
S103,按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型,其中,上述目标类型包括目标信息级别。
在本申请实施例中为了方便调试,可以预先将待打印的调试信息进行模块化分类。例如,可以划分为存储模块、网络模块及预览模块。在***较为复杂时,为了更加准确,可以将各模块进一步划分为子模块。例如,存储模块可以划分为光盘存储及硬盘存储,网络模块可以划分为网络搜索和网络配置,预览模块可以划分为本地预览、远程预览及回放预览等。同时还可以划分调试信息的打印级别,即信息级别,例如,信息级别可以包括:严重错误信息、一般错误信息、警告信息及一般信息等。还可以对调试信息显示格式进行划分,例如,调试信息显示格式包括:无附加格式、输出调试内容附加时间信息、输出调试内容附加代码所在行信息、输出调试内容附加函数名信息、输出调试内容附加所在线程名信息等。
信息属性数据中可以包括待打印调试信息的模块(即目标模块)的标识及待打印的调试信息的打印级别(即目标信息级别)的标识,待调试设备按照配置文件中的信息属性数据,确定待打印调试信息的模块得到目标模块,确定目标模块中待打印的调试信息的类型得到目标类型。目标类型包括目标信息级别。目标信息级别可以为严重错误信息、一般错误信息、警告信息及一般信息中的一种或多种,具体按照信息属性数据进行确定。可选的,上述信息属性数据包括信息级别标识、显示格式标识、模块标识及子模块标识。
为了规范化、模块化设备的调试信息,可以将程序通过printf等标准输出函数加以封装,并增加了调试信息级别、调试信息显示格式、调试模块的概念。可选的,可以通过四个字段来表示:iDbgLevel(即信息级别标识)、iDbgFormat(即显示格式标识)、iDbgModule(即模块标识)和iDbgMask(即子模块标识)。其中iDbgModule和iDbgMask共同来表示模块的概念,在方便模块精细划分的同时,便于输出多个子模块。当然,在实际应用过程中可以根据实际情况增加其他的字段,也可以减少其中的字段等,均在本申请的保护范围内。
相应的,上述按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型,包括:
步骤一,按照上述模块标识及上述子模块标识,确定待打印调试信息的目标模块。
信息属性数据中各标识字段,都可以通过与运算进行叠加。例如,预览模块下面又进行了详细划分,分为本地预览和远程预览两个子模块,分别用0x1和0x 2来表示本地预览和远程预览两个子模块,那么当iDbgMask设置为0x 3时,0x 1和0x 3进行与操作以及0x 2和0x 3进行与操作,结果均为TRUE值,则这两个模块可以同时输出调试信息,即将本地预览子模块及远程预览子模块均作为目标模块。
步骤二,按照上述级别标识及上述显示格式标识,确定待打印调试信息的目标类型,其中,上述目标类型包括目标信息级别及目标显示格式。
待调试设备按照显示格式标识确定待打印调试信息的显示格式(即目标显示格式),按照级别标识确定待打印调试信息的打印级别(即目标信息级别),从而得到待打印调试信息的目标类型。目标类型包括目标信息级别及目标显示格式,例如,调试信息的级别包括:严重错误信息0x1、一般错误信息0x2、警告信息0x4及一般信息0x8;调试信息显示格式包括:无附加格式0x0、输出调试内容附加时间信息0x1、输出调试内容附加代码所在行信息0x2、输出调试内容附加函数名信息0x4、输出调试内容附加所在线程名信息0x8,在信息级别标识为0x1,显示格式标识为0x0时,则目标类型为严重错误信息、无附加格式;在信息级别标识为4,显示格式标识为2时,则目标类型为警告信息、输出调试内容附加代码所在行信息。
待调试设备可以通过getDbgCtrl命令获取配置文件,配置文件中信息属性数据中各标识字段,都可以通过与运算进行叠加。例如,调试信息的级别包括:严重错误信息0x1、一般错误信息0x2、警告信息0x4及一般信息0x8;调试信息显示格式包括:无附加格式0x0、输出调试内容附加时间信息0x1、输出调试内容附加代码所在行信息0x2、输出调试内容附加函数名信息0x4、输出调试内容附加所在线程名信息0x8;待打印的调试信息的模块化分类包括存储模块0x1、网络模块0x2及预览模块0x4,存储模块划分为光盘存储0x1及硬盘存储0x2,网络模块划分为网络搜索0x1和网络配置0x2,预览模块划分为本地预览0x1、远程预览0x2及回放预览0x4。
例如,按照iDbgLevel、iDbgFormat、iDbgModule、iDbgMask的顺序,信息属性数据为:0x7 0x6 0x2 0x3,则打印输出的调试信息为:打印输出网络搜索模块和网络配置模块的所有严重错误、一般错误和警告信息,并附带函数名信息和代码所在行信息。
S104,调用预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述移动存储设备中。
待调试设备中预先存储有打印输出函数,待调试设备调用该打印输出函数打印目标模块的目标类型的调试信息(即目标调试信息),并将目标调试信息保存在移动存储设备中。例如信息属性数据为:0x7 0x6 0x2 0x3,则打印输出的调试信息为:打印输出网络搜索模块和网络配置模块的所有严重错误、一般错误和警告信息,并附带函数名信息和代码所在行信息。打印调试信息的具体过程可以如图2所示。
因为待调试设备中调试信息的默认输出目录可能默认为调试串口,因此需要对调试信息的输出路径重定向。当然调试信息的默认输出目录为移动存储设备时,可以不用重定向。可选的,上述配置文件中还包括:重定向开关信息,上述调用预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述移动存储设备中,包括:
步骤一,在上述重定向开关信息表征需要重定向时,调用预设重定向函数,将预设打印输出函数的输出位置重定向为上述移动存储设备的指定文本文件。
待调试设备中可以预先存储重定向函数,在重定向开关信息表征需要重定向时,待调试设备调用重定向函数,将预设打印输出函数的输出位置重定向为移动存储设备的指定文本文件。
步骤二,通过上述预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述指定文本文件中。
在重定向完成后,待调试设备调用预设打印输出函数,打印目标模块的目标类型的目标调试信息,打印后的目标调试信息按照重定向结果存储到移动存储设备的指定文本文件中。在打印完成后,仅需通过邮件等方式将移动存储设备中的数据发送给技术人员即可。
可选的,在按照上述重定向信息,调用预设重定向函数,将预设打印输出函数的输出位置重定向为上述移动存储设备的指定文本文件之前,上述方法还包括:
获取当前时间,按照上述当前时间在上述移动存储设备中建立指定文本文件,其中,上述指定文本文件的命名中包含上述当前时间。
在调用预设重定向函数之前,待调试设备可以获取当前时间,并在移动存储设备中建立指定文本文件,指定文本文件的命名中包含当前时间。
在本申请实施例中,通过移动存储设备中的配置文件,实现将调试信息存储到移动存储设备中,不用派遣技术人员去现场打印,打印完成后可以将移动存储设备中的数据远程发送给技术人员即可,提高了调试信息的获取效率。并且移动存储设备中存储的为配置文件,并非可执行程序,相比于调用移动存储设备中的可执行程序,待调试设备调用自身可执行程序的效率更高。
很多情况下,调试信息涉及到设备开发及使用过程中的保密数据,为了保证调试信息的安全,还可以在配置文件中添加密钥数据。可选的,上述配置文件还包括密钥数据,上述方法还包括:
检测上述密钥数据是否正确。
密钥数据可以采用用户名加密码的形式,也可以为一个预设长度的字符串。待调试设备获取配置文件中的密钥数据,检测密钥数据是否正确。
相应的,上述S103,按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型,包括:
在上述密钥数据正确时,按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型。
当密钥数据正确时,判定当前用户有打印权限,继续执行按照信息属性数据,确定待打印调试信息的目标模块及目标模块中待打印的调试信息的目标类型的步骤。当密钥数据错误时,不执行后续步骤,向用户显示密钥数据错误信息。
可选的,在按照上述重定向信息,调用预设重定向函数,将预设打印输出函数的输出位置重定向为上述移动存储设备的指定文本文件之前,上述方法还包括:
获取当前时间,按照上述当前时间在上述移动存储设备中建立指定文本文件,其中,上述指定文本文件的命名中包含上述当前时间。
可选的,本申请实施例的调试信息输出方法还包括:
步骤一,获取文件配置信息。
待调试设备获取用户输入的文件配置信息,文件配置信息用于配置移动存储设备中的配置文件。文件配置信息中可以包括信息级别标识、显示格式标识、模块标识和子模块标识等数据。
步骤二,按照上述文件配置信息,配置上述移动存储设备的配置文件。
待调试按照文件配置信息,配置移动存储设备的配置文件。例如,按照文件配置信息配置移动存储设备配置文件中的信息级别标识、显示格式标识、模块标识和子模块标识等数据。在一种可能的实施方式中,可以通过setDbgCtrl命令实现配置移动存储设备中的配置文件,通过setDbgCtrl命令设置:setDbgCtrl 0x7 0x6 0x2 0x3,按照信息级别标识、显示格式标识、模块标识、子模块标识的顺序,则配置文件中信息属性数据的信息级别标识为0x7、显示格式标识为0x6、模块标识为0x2、子模块标识为0x3。可以理解的是,通过setDbgCtrl命令实现配置移动存储设备中的配置文件仅是本申请实施例中一种可能的实施方式,实际执行过程中还可以通过其他设定的命令完成配置文件的配置,甚至还可以采取直接修改配置文件或者直接修改***变量等形式实现。
当然,在本申请实施例中,并不一定通过待调试设备完成对移动存储设备中配置文件的配置,可用通过任意具有信息写入能力的设备,完成对移动存储设备中配置文件的配置。
具体的,本申请实施例中的移动存储设备可以为U盘,本申请实施例的调试信息输出方法还可以如图3所示。U盘重定向功能,是在U盘中放入一个配置文件,配置文件包括总长度字段、版本信息字段、用户名字段、密码字段、重定向开关字段、信息属性数据(iDbgLevel、iDbgFormat、iDbgModule和iDbgMask字段)、校验字段等。配置文件可以存放在U盘根目录的指定文件夹内。待检测设备开机启动后,检测USB(Universal Serial Bus,通用串行总线)接口,判断是否检测到U盘。在检测到U盘后,检测U盘中的配置文件,判断U盘中是否存储有配置文件。在U盘中有配置文件时,读取配置文件计算配置文件校验值。检测配置文件长度、用户名、密码及校验值等数据是否正确,在各参数均正确时,判定是否启动重定向。在需要启动重定向时,设置调试打印控制数据,读取当前时间,按照当前时间建立文本文件,例如,当前时间为20181107 17:15:31。按照当前时间,在U盘中创建文本文件181107_171531.log。调用重定向函数,将串口输出重定向到U盘的文本文件中。
本申请实施例的调试信息输出方法可以基于嵌入式Linux***,适用性更强。在待调试设备中***U盘,然后只需要启动待调试设备,不用专门创建一个守护进程,来时刻检测U盘是否存在。只需将配置文件拷入U盘中,然后***设备,启动设备。设备在启动上电的时候,会检测一次U盘,完成判断工作,如果检测通过,直接开启重定向。任务即截止。并不存在一直运行的线程。U盘中放入的只是配置文件,而并非是可执行程序。配置文件中包含几个方面的信息:是否要开启U盘获取信息功能、用户名和密码、用户想要获取的打印输出模块。
本申请实施例中考虑到了安全性,U盘中的配置文件包含待调试设备的用户信息(用户名和密码),只有当用户名和密码正确,才能开启U盘获取串口信息功能,否则不能获取,从而提高了***的安全性,避免串口信息中的一些敏感信息泄露。具有输出信息分类功能,***越复杂,功能模块就越多,为了方便调试,可以将打印信息进行模块化分类。对于Linux***而言,控制打印输出的***函数固定,如printf()函数、perror()函数等,如果每个模块都调用这些函数,那么打印信息会错综复杂数量巨大。而在本申请实施例中对这些函数进行封装,实现了打印输出的模块化。根据U盘中的模块控制字段,获取要输出的模块打印信息,更具有针对性。
本申请实施例还提供了一种调试信息输出装置,应用于待调试设备,参见图4,该装置包括:
存储设备检测模块401,用于在上述待调试设备启动后,检测上述待调试设备是否连接有移动存储设备;
配置文件获取模块402,用于在上述待调试设备连接有上述移动存储设备时,获取上述移动存储设备中的配置文件,其中,上述配置文件包括信息属性数据;
待打印信息确定模块403,用于按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型;
调试信息打印模块404,用于调用预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述移动存储设备中。
可选的,上述配置文件获取模块402,包括:
配置文件检测子模块,用于在上述待调试设备连接有移动存储设备时,检测上述移动存储设备中是否存储有配置文件;
配置文件读取子模块,用于当在上述移动存储设备中检测到配置文件时,获取上述移动存储设备中的配置文件。
可选的,上述配置文件还包括密钥数据,本申请实施例的调试信息输出装置还包括:
密钥数据检测模块,用于检测上述密钥数据是否正确;
上述待打印信息确定模块403,具体用于:
在上述密钥数据正确时,按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型。
可选的,上述信息属性数据,包括信息级别标识、显示格式标识、模块标识及子模块标识;
上述待打印信息确定模块403,包括:
目标模块确定子模块,用于按照上述模块标识及上述子模块标识,确定待打印调试信息的目标模块;
目标模块确定子模块,用于按照上述级别标识及上述显示格式标识,确定待打印调试信息的目标类型,其中,上述目标类型包括目标信息级别及目标显示格式。
可选的,上述配置文件中还包括:重定向开关信息,上述调试信息打印模块404,包括:
重定向函数调用子模块,用于在上述重定向开关信息表征需要重定向时,调用预设重定向函数,将预设打印输出函数的输出位置重定向为上述移动存储设备的指定文本文件;
打印输出函数调用子模块,用于通过上述预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述指定文本文件中。
可选的,本申请实施例的调试信息输出装置还包括:
指定文本文件建立模块,用于获取当前时间,按照上述当前时间在上述移动存储设备中建立指定文本文件,其中,上述指定文本文件的命名中包含上述当前时间。
可选的,本申请实施例的调试信息输出装置还包括:
配置信息获取模块,用于获取文件配置信息;
配置文件配置模块,用于按照上述文件配置信息,配置上述移动存储设备的配置文件。
本申请实施例还提供了一种电子设备,包括处理器和存储器;
上述存储器,用于存放计算机程序;
上述处理器,用于执行上述存储器上所存放的程序时,实现如下步骤:
在上述待调试设备启动后,检测上述待调试设备是否连接有移动存储设备;
在上述待调试设备连接有上述移动存储设备时,获取上述移动存储设备中的配置文件,其中,上述配置文件包括信息属性数据;
按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型;
调用预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述移动存储设备中。
可选的,上述处理器用于执行所述存储器上所存放的程序时,还能够实现上述任一调试信息输出方法。
可选的,如图5所示,本申请实施例的电子设备还包括通信接口502和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现如下步骤:
在上述待调试设备启动后,检测上述待调试设备是否连接有移动存储设备;
在上述待调试设备连接有上述移动存储设备时,获取上述移动存储设备中的配置文件,其中,上述配置文件包括信息属性数据;
按照上述信息属性数据,确定待打印调试信息的目标模块及上述目标模块中待打印的调试信息的目标类型;
调用预设打印输出函数,打印上述目标模块的目标类型的目标调试信息,并将上述目标调试信息保存到上述移动存储设备中。
可选的,上述计算机程序被处理器执行时,还能够实现上述任一调试信息输出方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (8)

1.一种调试信息输出方法,其特征在于,应用于待调试设备,所述方法包括:
在所述待调试设备启动后,检测所述待调试设备是否连接有移动存储设备;
在所述待调试设备连接有所述移动存储设备时,获取所述移动存储设备中的配置文件,其中,所述配置文件包括信息属性数据,所述信息属性数据,包括信息级别标识、显示格式标识、模块标识及子模块标识;
按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型,其中,所述目标类型包括目标信息级别及目标显示格式;
调用经过封装的预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中;
所述按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型之前,所述方法还包括:
将待打印调试信息进行模块化分类;并划分所述待打印调试信息的打印级别;对所述待打印调试信息的显示格式进行划分;
所述方法还包括:
获取文件配置信息,所述文件配置信息用于配置移动存储设备中的配置文件,所述文件配置信息中包括信息级别标识、显示格式标识、模块标识及子模块标识;
按照所述文件配置信息配置所述移动存储设备中的配置文件。
2.根据权利要求1所述的方法,其特征在于,所述配置文件还包括密钥数据,所述方法还包括:
检测所述密钥数据是否正确;
所述按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型,包括:
在所述密钥数据正确时,按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型。
3.根据权利要求1所述的方法,其特征在于,所述配置文件中还包括:重定向开关信息,所述调用经过封装的预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中,包括:
在所述重定向开关信息表征需要重定向时,调用预设重定向函数,将经过封装的预设打印输出函数的输出位置重定向为所述移动存储设备的指定文本文件;
通过所述经过封装的预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述指定文本文件中。
4.一种调试信息输出装置,其特征在于,应用于待调试设备,所述装置包括:
存储设备检测模块,用于在所述待调试设备启动后,检测所述待调试设备是否连接有移动存储设备;
配置文件获取模块,用于在所述待调试设备连接有所述移动存储设备时,获取所述移动存储设备中的配置文件,其中,所述配置文件包括信息属性数据;
待打印信息确定模块,用于按照所述信息属性数据,确定待打印调试信息的目标模块及所述目标模块中待打印调试信息的目标类型,其中,所述目标类型包括目标信息级别;
调试信息打印模块,用于调用经过封装的预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述移动存储设备中;
所述信息属性数据,包括信息级别标识、显示格式标识、模块标识及子模块标识,所述待打印信息确定模块,包括:
目标模块确定子模块,用于按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;
目标模块确定子模块,用于按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型,其中,所述目标类型包括目标信息级别及目标显示格式;
所述装置还包括执行以下操作的模块:
将待打印调试信息进行模块化分类;并划分所述待打印调试信息的打印级别;对所述待打印调试信息的显示格式进行划分;
所述装置还包括执行以下操作的模块:
获取文件配置信息,所述文件配置信息用于配置移动存储设备中的配置文件,所述文件配置信息中包括信息级别标识、显示格式标识、模块标识及子模块标识;
按照所述文件配置信息配置所述移动存储设备中的配置文件。
5.根据权利要求4所述的装置,其特征在于,所述配置文件还包括密钥数据,所述装置还包括:
密钥数据检测模块,用于检测所述密钥数据是否正确;
所述待打印信息确定模块,具体用于:
在所述密钥数据正确时,按照所述模块标识及所述子模块标识,确定待打印调试信息的目标模块;按照所述级别标识及所述显示格式标识,确定待打印调试信息的目标类型。
6.根据权利要求4所述的装置,其特征在于,所述配置文件中还包括:重定向开关信息,所述调试信息打印模块,包括:
重定向函数调用子模块,用于在所述重定向开关信息表征需要重定向时,调用预设重定向函数,将经过封装的预设打印输出函数的输出位置重定向为所述移动存储设备的指定文本文件;
打印输出函数调用子模块,用于通过所述经过封装的预设打印输出函数,打印所述目标模块的目标类型的目标调试信息,并将所述目标调试信息保存到所述指定文本文件中。
7.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
CN201910191056.2A 2019-03-12 2019-03-12 调试信息输出方法、装置、电子设备及存储介质 Active CN111694704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910191056.2A CN111694704B (zh) 2019-03-12 2019-03-12 调试信息输出方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910191056.2A CN111694704B (zh) 2019-03-12 2019-03-12 调试信息输出方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111694704A CN111694704A (zh) 2020-09-22
CN111694704B true CN111694704B (zh) 2023-10-10

Family

ID=72475074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910191056.2A Active CN111694704B (zh) 2019-03-12 2019-03-12 调试信息输出方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111694704B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732586B (zh) * 2021-01-20 2024-06-07 山东云海国创云计算装备产业创新中心有限公司 一种芯片调试方法、***、设备及计算机可读存储介质
CN113051093A (zh) * 2021-03-16 2021-06-29 长沙景嘉微电子股份有限公司 OpenGL驱动的错误分级处理方法、装置和电子设备
CN114153509A (zh) * 2021-12-01 2022-03-08 联想(北京)有限公司 一种***启动方法及电子设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006133836A (ja) * 2004-11-02 2006-05-25 Seiko Epson Corp マイクロコンピュータ及びマイクロコンピュータの製造方法
CN101800843A (zh) * 2010-04-22 2010-08-11 四川长虹电器股份有限公司 一种机顶盒抓取打印信息的方法
CN102270131A (zh) * 2011-06-29 2011-12-07 深圳市博康智能信息技术有限公司 一种调试信息统一管理***
CN102521087A (zh) * 2011-11-02 2012-06-27 烽火通信科技股份有限公司 一种远程获取内核模块实时分级调试信息的***及方法
JP2012141906A (ja) * 2011-01-06 2012-07-26 Nec Access Technica Ltd デバッグ対象装置、デバッグ情報出力システム、デバッグ情報出力方法およびデバッグ情報出力プログラム
CN104007944A (zh) * 2014-06-23 2014-08-27 上海斐讯数据通信技术有限公司 一种调试打印方法及调试打印***
CN104951395A (zh) * 2014-03-27 2015-09-30 浙江大华技术股份有限公司 一种嵌入式***调试信息处理方法及装置
CN105204789A (zh) * 2015-08-24 2015-12-30 北京金山安全软件有限公司 一种api调试日志打印方法及装置
CN105260315A (zh) * 2015-11-13 2016-01-20 上海斐讯数据通信技术有限公司 一种在嵌入式***进程中调试日志的方法
CN105868391A (zh) * 2012-09-25 2016-08-17 北京奇虎科技有限公司 一种日志记录的方法和装置
CN106776308A (zh) * 2016-12-06 2017-05-31 福州高图信息技术有限公司 一种基于Uboot的电子产品故障调试方法及***
CN107547943A (zh) * 2016-06-23 2018-01-05 中兴通讯股份有限公司 一种日志文件自动导出方法和机顶盒
CN107577577A (zh) * 2017-09-13 2018-01-12 郑州云海信息技术有限公司 日志分级打印的方法、装置、***及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006069491A1 (en) * 2004-12-31 2006-07-06 Intel Corporation Remote logging mechanism
JP2006259810A (ja) * 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd デバッグ装置
US8458667B2 (en) * 2008-01-30 2013-06-04 National Instruments Corporation Debugging a statechart for a real time target
US20130031419A1 (en) * 2011-07-28 2013-01-31 International Business Machines Corporation Collecting Debug Data in a Secure Chip Implementation

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006133836A (ja) * 2004-11-02 2006-05-25 Seiko Epson Corp マイクロコンピュータ及びマイクロコンピュータの製造方法
CN101800843A (zh) * 2010-04-22 2010-08-11 四川长虹电器股份有限公司 一种机顶盒抓取打印信息的方法
JP2012141906A (ja) * 2011-01-06 2012-07-26 Nec Access Technica Ltd デバッグ対象装置、デバッグ情報出力システム、デバッグ情報出力方法およびデバッグ情報出力プログラム
CN102270131A (zh) * 2011-06-29 2011-12-07 深圳市博康智能信息技术有限公司 一种调试信息统一管理***
CN102521087A (zh) * 2011-11-02 2012-06-27 烽火通信科技股份有限公司 一种远程获取内核模块实时分级调试信息的***及方法
CN105868391A (zh) * 2012-09-25 2016-08-17 北京奇虎科技有限公司 一种日志记录的方法和装置
CN104951395A (zh) * 2014-03-27 2015-09-30 浙江大华技术股份有限公司 一种嵌入式***调试信息处理方法及装置
CN104007944A (zh) * 2014-06-23 2014-08-27 上海斐讯数据通信技术有限公司 一种调试打印方法及调试打印***
CN105204789A (zh) * 2015-08-24 2015-12-30 北京金山安全软件有限公司 一种api调试日志打印方法及装置
CN105260315A (zh) * 2015-11-13 2016-01-20 上海斐讯数据通信技术有限公司 一种在嵌入式***进程中调试日志的方法
CN107547943A (zh) * 2016-06-23 2018-01-05 中兴通讯股份有限公司 一种日志文件自动导出方法和机顶盒
CN106776308A (zh) * 2016-12-06 2017-05-31 福州高图信息技术有限公司 一种基于Uboot的电子产品故障调试方法及***
CN107577577A (zh) * 2017-09-13 2018-01-12 郑州云海信息技术有限公司 日志分级打印的方法、装置、***及计算机可读存储介质

Also Published As

Publication number Publication date
CN111694704A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111694704B (zh) 调试信息输出方法、装置、电子设备及存储介质
CN108427731B (zh) 页面代码的处理方法、装置、终端设备及介质
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
US20140244812A1 (en) Method, system and program for browser to switch ie core
CN106528791B (zh) 一种推送通知消息的方法及装置
CN110866258B (zh) 快速定位漏洞方法、电子装置及存储介质
CN107729452B (zh) 网页加载方法、装置、电子设备及计算机可读存储介质
WO2015131804A1 (en) Call stack relationship acquiring method and apparatus
CN111190603B (zh) 一种隐私数据检测方法、装置和计算机可读存储介质
CN111078637B (zh) 脚本文件上线方法、装置、计算机设备及存储介质
US20170199889A1 (en) Method and device for identifying junk picture files
JP2006236220A (ja) テスト用データファイル作成装置、方法、プログラム及び記録媒体
CN111538659A (zh) 业务场景的接口测试方法、***、电子设备和存储介质
CN110309669A (zh) 一种数据标注方法、装置及设备
CN109670316A (zh) 一种基于Java异常的漏洞检测方法和装置
CN112015483B (zh) Post请求参数自动化处理方法、装置及可读存储介质
CN111460448B (zh) 一种恶意软件家族检测方法及装置
Al-Zarouni Introduction to mobile phone flasher devices and considerations for their use in mobile phone forensics
CN111143831A (zh) 安装包隐私权限扫描方法、装置及计算机设备
CN108959915B (zh) 一种rootkit检测方法、装置及服务器
CN110244986A (zh) 浏览器配置方法和装置
CN113553578A (zh) 一种日志打印响应方法、装置、电子设备和存储介质
US20160196423A1 (en) Smart device and method for dynamically detecting applications
CN111142735B (zh) 一种软件页面的创建方法、装置、终端设备和存储介质
CN106407815A (zh) 漏洞检测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant