一种通过存储配置控制调试信息输出的方法及计算机设备技术

技术编号:18657920 阅读:571 留言:0更新日期:2018-08-11 14:24
本发明专利技术提供的一种通过存储配置控制调试信息输出的方法,设定一独立存储空间;在代码中将调试信息定位至所述存储空间;编译生成独立的调试文件;将所述调试文件导入所述存储空间,将调试信息进行输出,本发明专利技术还提供一种计算机设备,通过本发明专利技术剥离调试信息内容后,就可以灵活配置调试信息的存储空间,可以在系统软件不变的情况下安全切换debug和release两种模式,方便复现并抓取故障调试信息。

A method of controlling debugging information output by storage configuration and computer equipment

The invention provides a method for controlling the output of debugging information by storage configuration, setting up an independent storage space, locating debugging information in the code to the storage space, compiling and generating independent debugging files, importing the debugging files into the storage space and outputting the debugging information, and provides the invention also. A computer device can flexibly configure the storage space of debugging information after stripping the contents of debugging information by the invention, and can safely switch debug and release modes without changing the system software, so as to conveniently reproduce and grasp the fault debugging information.

【技术实现步骤摘要】
一种通过存储配置控制调试信息输出的方法及计算机设备
本专利技术涉及一种通过存储配置控制调试信息输出的方法及计算机设备。
技术介绍
在嵌入式系统中,添加print语句输出调试信息是最常用调试方式。为了快速定位问题,代码中会大量添加print语句。这种方式存在两个明显的缺点:1)软件系统会因此变得十分庞大,占用大量的代码空间(指用于程序存储及运行的空间,如MCU片内的ROM空间)。2)软件系统会因此运行效率低下。而嵌入系统,尤其是小型嵌入式系统,为了降低成本,所采用的MCU往往运行主频不高,代码存储空间有限。针对以上两个问题,常见的处理方案是:1)尽量减少print语句的数量,压缩print语句所携带的调试信息长度;2)为每个版本都保存debug与release两份输出。Debug版本保留print语句,release版本不带print语句。需要调试的时候烧录debug版本,正式生产烧录release版本。常见处理方案的缺点:1)对print语句的限制无疑提高了对程序员的编程要求,降低了开发和调试的效率。2)在debug模式下仍旧大量占用代码存储空间;3)debug与release模式之间的切换需要更换整个软件系统,这会给售后维护带来很多麻烦。比如,变更软件系统很可能会重置用户数据,而客诉故障有可能依赖于当前用户数据才能复现,变更软件系统就意味着故障现象可能无法重现。比如,有的时候需要在客户现场复现并抓取调试信息发回供研发分析,在客户现场变更软件系统可能会带来安全方面的问题。
技术实现思路
本专利技术要解决的技术问题,在于提供一种通过存储配置控制调试信息输出的方法及计算机设备,使用起来更简洁高效。本专利技术之一是这样实现的:一种通过存储配置控制调试信息输出的方法,包括:步骤1、设定一独立存储空间;步骤2、在代码中将调试信息定位至所述存储空间;步骤3、编译生成独立的调试文件;步骤4、将所述调试文件导入所述存储空间,将调试信息进行输出。进一步地,所述步骤2进一步具体为:在代码中将调试信息定位至所述存储空间;所述定位方法为通过编译器的编译属性进行指定,向编译器声明调试信息的存储空间。进一步地,所述步骤3进一步具体为:编译器将代码中声明定位至所述存储空间的调试信息进行汇总,生成一个独立的调试文件。进一步地,还包括步骤5、删除所述调试文件,程序恢复到release状态。本专利技术之二是这样实现的:本专利技术一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:步骤1、设定一独立存储空间;步骤2、在代码中将调试信息定位至所述存储空间;步骤3、编译生成独立的调试文件;步骤4、将所述调试文件导入所述存储空间,将调试信息进行输出。进一步地,所述步骤2进一步具体为:在代码中将调试信息定位至所述存储空间;所述定位方法为通过编译器的编译属性进行指定,向编译器声明调试信息的存储空间。进一步地,所述步骤3进一步具体为:编译器将代码中声明定位至所述存储空间的调试信息进行汇总,生成一个独立的调试文件。进一步地,还包括步骤5、删除所述调试文件,程序恢复到release状态。本专利技术具有如下优点:一种通过存储配置控制调试信息输出的方法及计算机设备,剥离调试信息内容,可以存储在任意非易失性存储器中,只要在需要调试时拷贝至程序可直接读取的RAM或FLASH空间即可。即,没有必须存储于代码空间的限制。切换debug与release模式极为方便,不用更换软件系统,安全性高,可以在不破坏客户数据的情况下复现故障并输出调试信息。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为本专利技术方法执行流程图。具体实施方式如图1所示,本专利技术通过存储配置控制调试信息输出的方法,包括:步骤1、设定一段独立的存储空间,所述存储空间为RAM或FLASH(但又不仅限于这两种介质),其中独立是指这段空间在程序运行时必须由调试信息独占;步骤2、在代码中将调试信息定位至所述存储空间;所述定位方法为通过编译器的编译属性进行指定,向编译器声明调试信息的存储空间,所述调试信息为print语句的传入参数;步骤3、编译器将代码中声明定位至所述存储空间的调试信息进行汇总,生成一个独立的调试文件,在此步骤,完成了调试信息内容的剥离;步骤4、在需要调试时,将所述的调试文件导入所述的存储空间内,程序识别到所述存储空间存在合法的调试文件,则进入debug状态,输出调试信息;步骤5、调试结束,删除所述调试文件,所述存储空间没有合法的调试文件,程序恢复到release状态,不再输出调试信息。本专利技术一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:步骤1、设定一段独立的存储空间,所述存储空间为RAM或FLASH,其中独立是指这段空间在程序运行时必须由调试信息独占;步骤2、在代码中将调试信息定位至所述存储空间;所述定位方法为通过编译器的编译属性进行指定,向编译器声明调试信息的存储空间,所述调试信息为print语句的传入参数;步骤3、编译器将代码中声明定位至所述存储空间的调试信息进行汇总,生成一个独立的调试文件,在此步骤,完成了调试信息内容的剥离;步骤4、在需要调试时,将所述的调试文件导入所述的存储空间内,程序识别到所述存储空间存在合法的调试文件,则进入debug状态,输出调试信息;步骤5、调试结束,删除所述调试文件,所述存储空间没有合法的调试文件,程序恢复到release状态,不再输出调试信息。本专利技术一种具体实施方式:1.设定一独立存储空间要将调试信息从系统中剥离出来,首先要提供一个独立的空间用于存放。这个独立空间可以通过分散加载文件来配置,例如:当然,这个独立空间的起始地址根据具体情况而定。在这个示例中,是将其定位到一段地址为0xEFB00000的RAM空间。编译器会根据所述分散描述文件的配置,输出一个独立的文件,这个文件中存储了所有定位到“LOG_MSG_SEG”段的内容,即调试信息的内容。2.调试信息内容定位然后是要如何将print语句中的参数内容定位到这个独立空间,例如:函数宏“DPrintf”就是本文所述print语句的一种具体实现示例。此段代码中,通过编译选项将“DPrintf”的每个传入参数定位到“LOG_MSG_SEG”宏所指定的存储空间,这样,代码中所有使用"DPrintf"函数宏的地方,其传入参数内容,即调试信息,就都被归集到“LOG_MSG_SEG”段。3.是否输出调试信息的判断在这个示例中,ScLogModuleIsEnable()函数用于判断“LOG_MSG_SEG”所指定的存储空间是否有合法的调试信息存在。如果返回TRUE,则说明调试信息存在,为debug状态,调试信息的内容就通过NiLogModulePrintf经由特定接口输出;如果返回FALSE,则说明调试信息不存在,为release状态,“DPrintf”不做任何操作直接返回。4.调试文件的存储编译器生成的调试文件可以存储于任意非易失性存储器中,具体根据产品方案来定。专用的debug工具在需要抓取调试信息的时候,会将调试文件下载到产品的非易失性存储器中。产品启动后,检测到所述存储器中有合法的本文档来自技高网...

【技术保护点】
1.一种通过存储配置控制调试信息输出的方法,其特征在于:包括:步骤1、设定一独立存储空间;步骤2、在代码中将调试信息定位至所述存储空间;步骤3、编译生成独立的调试文件;步骤4、将所述调试文件导入所述存储空间,将调试信息进行输出。

【技术特征摘要】
1.一种通过存储配置控制调试信息输出的方法,其特征在于:包括:步骤1、设定一独立存储空间;步骤2、在代码中将调试信息定位至所述存储空间;步骤3、编译生成独立的调试文件;步骤4、将所述调试文件导入所述存储空间,将调试信息进行输出。2.根据权利要求1所述的一种通过存储配置控制调试信息输出的方法,其特征在于:所述步骤2进一步具体为:在代码中将调试信息定位至所述存储空间;所述定位方法为通过编译器的编译属性进行指定,向编译器声明调试信息的存储空间。3.根据权利要求2所述的一种通过存储配置控制调试信息输出的方法,其特征在于:所述步骤3进一步具体为:编译器将代码中声明定位至所述存储空间的调试信息进行汇总,生成一个独立的调试文件。4.根据权利要求1所述的一种通过存储配置控制调试信息输出的方法,其特征在于:还包括步骤5、删除所述调试文件,程序恢复到release状态。...

【专利技术属性】
技术研发人员:陈成秋
申请(专利权)人:福建升腾资讯有限公司
类型:发明
国别省市:福建,35

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

1