一种在嵌入式系统进程中调试日志的方法技术方案

技术编号:12733113 阅读:104 留言:0更新日期:2016-01-20 16:23
本发明专利技术提供一种在嵌入式系统进程中调试日志的方法,包括将日志调用函数集成为库函数,以供各个进程来调用;初始化进程的日志等级、日志目的地和进程标示;定义日志等级调试函数,以添加不同日志等级的调试信息;添加接收进程日志等级和日志目的地的设置消息的接口;添加设置进程的调试等级和调试信息输出目的地的命令接口;输出调试日志打印记录。本发明专利技术的在嵌入式系统进程中调试日志的方法统一了系统的调试函数,避免了各个模块和各个程序员的各种风格的调试打印,从而提高了研发和测试的工作效率和后期系统维护的效率。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统的
,特别是涉及一种在嵌入式系统进程中调试日志的方法
技术介绍
在嵌入式领域或者是软件开发领域,调试是非常重要的一个环节。调试代码的方便性是极其重要的。因此,一个好的系统如果调试手段比较方便的话,可以极大地提升开发效率。不同于传统桌面式软件开发调试工具的丰富多样,受制于系统资源的亏缺,嵌入式系统的调试并不是非常的方便,也欠缺专业的调试工具。因此,目前嵌入式系统的调试效率还是比较低下的。现有技术中,嵌入式系统的最常用的调试方法主要有以下三种:(1)在进程中要调试的地方添加printf打印函数这种方式是嵌入式系统中使用最多的,也是效率最低下的调试方式。这是因为,该方式会在进程中加很多的printf打印函数。当程序调通后发布版本的时候,需要再把printf打印函数全部去除。当现场版本测出有问题时,又要换版本重新添加printf打印函数调试。由于printf打印函数的反复添加和去除,导致进程调试的效率比较低下。如若现场版本出问题,还需要重新升级换版本调试,从而破坏现场测试环境,如果这个漏洞(bug)是不易复现的话,还要增加复现bug的时间,进一步影响调试效率。(2)在进程中加入了一个调试宏具体地,在编译的时候定义一个调试宏,用于将进程中的调试信息都打印出来。相较于方法(1),printf打印函数的调试信息不用被去掉。当进程程序调通过进行发布时,只要在编译的时候不定义该调试宏即可。但是,如若现场版本出现问题,还是需要重新定义调试宏,重新编译版本。(3)用gdb和gdb_server调试采用gdb和gdb_server调试的话,调试效率相对来说比较高。但是,该方法具有以下不足:a)在编译的时候需要加入-g参数,会导致编译出来的程序占用空间比较大;b)需要将gdb_server放在嵌入式系统里面,这样也比较占空间;c)调试的时候需要交叉编译的gdb环境,导致对调试的宿主机的要求也比较高;d)调试的时候需要占用网口,并且网络通信没有问题。e),这种调试方式比较适用于早期软件的开发,而不适用于后期现场版本软件的维护和诊断。因此,需要克服现有技术的上述不足,提供一种提高嵌入式进程调试效率的新方案。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种在嵌入式系统进程中调试日志的方法,通过提供一套调用调试日志(debuglog)的库函数,统一了系统的调试函数,避免了各个模块和各个程序员的各种风格的调试打印,也有利于后期整个系统的维护,从而提高了研发和测试的工作效率和后期系统维护的效率。为实现上述目的及其他相关目的,本专利技术提供一种在嵌入式系统进程中调试日志的方法,包括以下内容:1)将日志调用函数集成为库函数,以供各个进程来调用;2)初始化进程的日志等级、日志目的地和进程标示;3)定义日志等级调试函数,以添加不同日志等级的调试信息;4)添加接收进程日志等级和日志目的地的设置消息的接口;5)添加设置进程的调试等级和调试信息输出目的地的命令接口;6)根据调试等级和进程的日志等级,输出调试日志打印记录。于本专利技术一实施例中,所述日志等级用于表示日志的等级,包括错误日志、注意日志和调试日志。于本专利技术一实施例中,所述日志目的地包括标准输出设备、telnet终端设备和文件。于本专利技术一实施例中,初始化时,所述日志等级默认为错误日志,所述日志目的地默认为标准输出设备。于本专利技术一实施例中,在添加调试信息时,只需调用日志等级调用函数中的错误日志函数或注意日志函数或调试日志函数即可,无需添加其他附件的调试信息。于本专利技术一实施例中,通过cli命令来设置进程的调试等级和调试信息输出目的地。于本专利技术一实施例中,打印调试日志时,须判断调试等级是否小于进程的日志等级;若是,则继续打印调试日志;若否,则直接退出。于本专利技术一实施例中,输出调试日志包括进程名、日志等级、日志生成时间、调用函数、日志行号、调试日志打印条件。于本专利技术一实施例中,所述日志生成时间精确到毫秒输出。如上所述,本专利技术的在嵌入式系统进程中调试日志的方法,具有以下有益效果:(1)调试日志可以保存在程序中,默认发布版本的时候将调试全部关掉,这样就不会看到很多打印;(2)不用重新编译版本就可以打开调试开关;(3)能够设置不同的调试等级,避免过多的调试信息输出;(4)能够将调试信息输出到不同的输出设备上;(5)能够输出详细的调试日志打印记录,包括打印时间,调试进程、调试函数,以及调试位置;(6)极大地方便了程序员的调试,程序员在设计软件的时候只需要加上调试的断点,而无需关注其他;若发现程序有漏洞,只需要打开相应的调试开关,抓取调试信息即可,无需切换升级版本。附图说明图1显示为本专利技术的在嵌入式系统进程中调试log的方法的流程图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需要说明的是,本实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。本专利技术的在嵌入式系统进程中调试日志的方法提供了一种在嵌入式系统中优化调试的方案,将调试日志封装成一套库函数,通过cli命令可以设置各个进程的日志等级(logLevel)和日志目的地(logDestination),提供简单的接口给程序员,以方便程序员的调用;同时统一了各个程序员的调试打印,能够提供具体详细的调试日志输出。参照图1,本专利技术的在嵌入式系统进程中调试日志的方法包括以下内容:(1)将日志调用函数集成为库函数,以供各个进程来调用。具体地,将日志调用函数做成一个动态lib库,方便不同的进程来调用。log_log(LOG_ERR,__FUNCTION__,__LINE__,args)函数是一个动态库函数。其中,__FUNCTION__参数是调用函数名,__LINE__是调用的行号,args是打印参数,log_log函数为自己定义的一个库函数,里面的逻辑是自己定义的,而非系统自带的一个库函数。所有的进程只要链接到动态库,都可以调用这个函数。本文档来自技高网
...
一种在嵌入式系统进程中调试日志的方法

【技术保护点】
一种在嵌入式系统进程中调试日志的方法,其特征在于:包括以下内容:1)将日志调用函数集成为库函数,以供各个进程来调用;2)初始化进程的日志等级、日志目的地和进程标示;3)定义日志等级调试函数,以添加不同日志等级的调试信息;4)添加接收进程日志等级和日志目的地的设置消息的接口;5)添加设置进程的调试等级和调试信息输出目的地的命令接口;6)根据调试等级和进程的日志等级,输出调试日志打印记录。

【技术特征摘要】
1.一种在嵌入式系统进程中调试日志的方法,其特征在于:包括以下内容:
1)将日志调用函数集成为库函数,以供各个进程来调用;
2)初始化进程的日志等级、日志目的地和进程标示;
3)定义日志等级调试函数,以添加不同日志等级的调试信息;
4)添加接收进程日志等级和日志目的地的设置消息的接口;
5)添加设置进程的调试等级和调试信息输出目的地的命令接口;
6)根据调试等级和进程的日志等级,输出调试日志打印记录。
2.根据权利要求1所述的在嵌入式系统进程中调试日志的方法,其特征在于:所述日志等级
用于表示日志的等级,包括错误日志、注意日志和调试日志。
3.根据权利要求1所述的在嵌入式系统进程中调试日志的方法,其特征在于:所述日志目的
地包括标准输出设备、telnet终端设备和文件。
4.根据权利要求1所述的在嵌入式系统进程中调试日志的方法,其特征在于:初始化时,所
述日志等级默认为错误日志,所述日志...

【专利技术属性】
技术研发人员:吴振华
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

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

1