一种调试信息的输出方法及系统的制作方法

文档序号:6584811阅读:116来源:国知局
专利名称:一种调试信息的输出方法及系统的制作方法
技术领域
本发明涉及计算机日志处理的技术领域,特别是涉及一种调试信息的输出方法及 一种调试信息的输出系统。
背景技术
调试是指在编好程序后,用各种手段进行查错和排错的过程。作为程序的正确性 不仅仅表现在正常功能的完成上,更重要的是对意外情况的正确处理。为了调试一个程序, 首先必须使程序中包含调试信息。公知的是,系统的调试工作主要在Debug版本下进行,而对外发布工作主要在 Release版本下进行,因此,调试信息通常只能在Debug版本下输出,而在Release版本下, 只能记录日志,无法进行运行情况的展示。并且,在实际的开发调试过程中,经常会遇到这样的问题,即在Debug版本下,程 序运行正常,而在Release版本下,程序却发生致命的错误的情况,甚至导致系统崩溃,在 这种情况下,程序开发人员也希望在Release版本下查看调试信息。

发明内容
本发明所要解决的技术问题是提供一种调试信息的输出方法及系统,以使调试信 息的查看不受当前编程或调试环境的限制,简化程序开发人员的操作。为了解决上述技术问题,本发明实施例公开了一种调试信息的输出方法,包括预置调试信息输出插件,以及,调试信息输出配置文件,所述配置文件用于记录相 关程序的调试信息和相应的输出属性;当所述程序运行时,在满足预设条件的情况下输出当前的调试信息,所述预设条 件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息的输出属性为需 要输出。优选的,所述调试信息包括多个分组的调试信息;所述输出属性包括当前程序的 调试信息是否输出的第一属性以及各个分组的调度信息是否输出的第二属性;所述输出调 试信息的步骤进一步包括当所述程序运行时,打开所述配置文件判断所述第一属性是否为需要输出,若是, 则判断所述调试信息输出插件是否被触发; 若是,则判断所述配置文件中记录的第二属性是否为需要输出,若是,则输出当前 的调试信息。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在当前界面显 示的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件从内存读取所述调试信息,在当前界面进行显示。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在新窗口中显示的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件创建一个新窗口,并从内存读取所述调试信息,在所述新 窗口中进行显示。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在日志文件中 记录的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件创建一个日志文件,并从内存读取所述调试信息,写入所 述日志文件中。本发明实施例还公开了一种调试信息的输出系统,包括预置模块,用于预置调试信息输出插件,以及,调试信息输出配置文件,所述配置 文件用于记录相关程序的调试信息和相应的输出属性;输出处理模块,用于在所述程序运行时,在满足预设条件的情况下输出当前的调 试信息,所述预设条件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试 信息的输出属性为需要输出。优选的,所述调试信息包括多个分组的调试信息;所述输出属性包括当前程序的 调试信息是否输出的第一属性以及各个分组的调度信息是否输出的第二属性;所述输出处 理模块进一步包括第一判断子模块,用于在所述程序运行时,打开所述配置文件判断所述第一属性 是否为需要输出,若是,则触发第二判断子模块;第二判断子模块,用于判断所述调试信息输出插件是否被触发,若是,则触发第三 判断子模块;第三判断子模块,用于判断所述配置文件中记录的第二属性是否为需要输出,若 是,则触发输出子模块;输出子模块,用于输出当前的调试信息。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在当前界面显 示的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;界面显示子模块,用于通过所述调试信息输出插件从内存读取所述调试信息,在 当前界面进行显示。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在新窗口中显 示的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;窗口显示子模块,用于通过所述调试信息输出插件创建一个新窗口,并从内存读 取所述调试信息,在所述新窗口中进行显示。优选的,所述输出属性还包括输出方式的属性,所述输出方式包括在日志文件中 记录的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;日志记录子模块,用于通过所述调试信息输出插件创建一个日志文件,并从内存读取所述调试信息,写入所述日志文件中。与现有技术相比,本发明具有以下优点本发明通过预置调试信息输出插件,以及,用于记录相关程序的调试信息和相应 的输出属性的调试信息输出配置文件,所述配置文件;当程序运行时,如果所述调试信息输 出插件被触发,并且,所述配置文件中相应调试信息的输出属性为需要输出,则输出当前的 调试信息。由于输出调试信息的独立性,从而使得程序开发人员无论在Debug版本还是在 Release版本下,都可以简单查看调试信息。即使对于在Debug版本下没有问题的源程序, 在Release版本下却发生致命的错误的情况,也可以直接在Release版本下进行查看,从而 起到辅助调试,提高调试效率,更好地展示和记录调试信息的作用,以进一步简化程序开发 人员的操作,使程序开发人员能第一时间查看系统的运行状态和排查问题。


图1是本发明的一种调试信息的输出方法实施例的步骤流程图;图2是本发明的一种调试信息的输出系统实施例的结构框图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如多处理器系统、服 务器、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组 件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。在程序编写和调试的过程中,通常需要输出一些调试信息,方便程序开发人员了 解程序的运行情况,以便查错。但这些信息,对程序的真正使用者并没有意义。于是,现 有技术将程序分成debug版本或release版本,然后只在debug版里输出这些信息,而在 release版本里完全禁止这些信息的输出。但是在某些情况下,Debug版本和Release版本 程序运行结果不一样。例如,在Debug版本下,程序运行正常,而在Release版本下,程序却 可能由于多种问题发生致命的系统错误,造成非法退出,在这种情况下,程序开发人员往往 希望也能查看相应的调试信息,针对这种需求,本专利发明人创造性地提出了一种不受当 前编程或调试环境的限制的调试信息输出机制。参考图1,示出了本发明的一种调试信息输出方法实施例1的流程图,具体可以包 括以下步骤步骤101、预置调试信息输出插件,以及,调试信息输出配置文件,所述配置文件用 于记录相关程序的调试信息和相应的输出属性;步骤102、当所述程序运行时,在满足预设条件的情况下输出当前的调试信息,所 述预设条件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息的输出属性为需要输出。在具体实现中,所述调试信息可以包括多个分组的调试信息;所述输出属性可以 包括当前程序的调试信息是否输出的第一属性以及各个分组的调度信息是否输出的第二 属性;在这种情况下,所述步骤102可以进一步包括以下子步骤子步骤S11、当所述程序运行时,打开所述配置文件判断所述第一属性是否为需要 输出,若是,则执行子步骤S2;子步骤S12、判断所述调试信息输出插件是否被触发,若是,则执行子步骤S3 ;子步骤S13、判断所述配置文件中记录的第二属性是否为需要输出,若是,则输出 当前的调试信息。具体而言,在任意的开发程序中会写入需要调试的信息。这些调试信息是分组的 (可以根据调试人员的需求而分组),这个分组的调试信息在所述程序触发时,会写入这个 程序相应的调试信息输出配置文件中。在本发明实施例中,调试信息的分组是为方便相关 调试人员有效、快速地提取其所需要的信息。以下提供一种调试信息输出配置文件结构的代码示例Output = TRUE ;LOG = TRUE ;Rendering = FALSE ;Cal = TRUE ;其中,Output表示是否输出当前程序的调试信息(第一属性);LOG表示输出信息 是否写入日志文件log,还是实时展示Rendering、Cal是表示当前写入的调试信息组(第 二属性);TRUE表示需要输出,FALSE表示不输出。这些调试信息是否输出还取决于另一个调试信息输出插件。公知的是,插件是一 种遵循一定规范的应用程序接口编写出来的程序,在诸多人机交互的应用中,插件可以直 接响应于用户的操作而被触发,从而直接调用相应的程序。在这种情况下,当程序运行时, 会打开所述调试信息输出配置文件,判断是否需要输出调试信息(Output = TRUE ?),若 是,程序会进一步判断该调试信息输出插件是否被触发,若是,则表明当前程序可以输出调 试信息,此时,再进一步读取当前需要输出的调试信息组的输出属性,如果读到组信息设置 为需要输出,在本发明的一种优选实施例中,调试信息就可以输出到共享内存,否则就不理石。在实际中,如果调试信息输出插件没有被触发,那么程序的调试信息不会写到共 享内存中,在程序发布时,或者,当程序不想做调试或记录日志时,也不会形成额外的负担。调试信息输出到共享内存后,可以进一步由调试信息输出插件来读取。调试信息 输出插件读取后的处理可以包括,在当前显示界面上展示,在新窗口中实时显示出来,也可 以将读取的调试信息写入日志文件。同时,这个调试信息输出插件还可以将所述调试信息 输出配置文件读取出来,让调试技术人员进行设置,例如只显示某个分组的调试信息,其它 分组的调试信息关闭不显示等等。即作为本发明的一种优选实施例而言,所述输出属性还可以包括输出方式的属 性,所述输出方式可以包括在当前界面显示的方式,在这种情况下,所述步骤102可以进一 步包括以下子步骤
子步骤S21、将当前的调试信息输出至内存;子步骤S22、所述调试信息输出插件从内存读取所述调试信息,在当前界面进行显 示。作为本发明的另一种优选实施例而言,所述输出属性还可以包括输出方式的属 性,所述输出方式可以包括在新窗口中显示的方式,在这种情况下,所述步骤102可以进一 步包括以下子步骤子步骤S31、将当前的调试信息输出至内存;子步骤S32、所述调试信息输出插件创建一个新窗口,并从内存读取所述调试信 息,在所述新窗口中进行显示。作为本发明的又一种优选实施例而言,所述输出属性还可以包括输出方式的属 性,所述输出方式可以包括在日志文件中记录的方式,在这种情况下,所述步骤102可以进 一步包括以下子步骤子步骤S41、将当前的调试信息输出至内存;子步骤S42、所述调试信息输出插件创建一个日志文件,并从内存读取所述调试信 息,写入所述日志文件中。公知的是,日志(log)是用来储存和记录系统的运行情况和调试信息的,这些信 息对于程序开发人员而言,是查看系统运行状态和排查问题的主要依据。例如,字幕制作系 统中应用程序出现崩溃情况,那么就可以从应用程序事件日志中找到相应的记录,从而帮 助相关技术人员分析并解决问题。应用本发明实施例,在调试人员需要记录日志或查看调试信息时,通过开启调试 信息输出插件,在配置文件中设置需要输出当前程序的调试信息,并挑选出当前需要输出 的分组调试信息,以及输出到日志文件还是在当前界面或窗口上实时显示,然后运行当前 的开发程序,就能在在当前界面或窗口上看到调试信息,或者从日志中查到调试信息了。可 以理解,本发明不限于在Debug版本下使用,在Release版本下同样可以使用,不仅支持实 时输出,而支持日志记录,输出方式可以灵活配置;并且,本发明进行显示信息或写日志等 耗资源的操作都推到了另一个程序(插件进程)中进行,减少了对程序正常运行的干扰;此 外,本发明在不需要输出调试信息时,几乎没有额外开销,不影响Release版本运行的资源 占用和速度。需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的 动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依 据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉, 说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必 须的。参考图2,示出了本发明的一种调试信息的输出系统实施例的结构框图,具体可以 包括以下模块预置模块201,用于预置调试信息输出插件,以及,调试信息输出配置文件,所述配 置文件用于记录相关程序的调试信息和相应的输出属性;输出处理模块202,用于在所述程序运行时,在满足预设条件的情况下输出当前的 调试信息,所述预设条件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息的输出属性为需要输出。在具体实现中,所述调试信息可以包括多个分组的调试信息;所述输出属性可以 包括当前程序的调试信息是否输出的第一属性以及各个分组的调度信息是否输出的第二 属性;在这种情况下,所述输出处理模块202可以进一步包括以下子模块第一判断子模块,用于在所述程序运行时,打开所述配置文件判断所述第一属性 是否为需要输出,若是,则触发第二判断子模块;第二判断子模块,用于判断所述调试信息输出插件是否被触发,若是,则触发第三 判断子模块;第三判断子模块,用于判断所述配置文件中记录的第二属性是否为需要输出,若 是,则触发输出子模块;输出子模块,用于输出当前的调试信息。在本发明的一种优选实施例中,所述输出属性还可以包括输出方式的属性,所述 输出方式可以包括在当前界面显示的方式,所述输出处理模块202进一步包括以下子模 块内存共享子模块,用于将当前的调试信息输出至内存;界面显示子模块,用于通过所述调试信息输出插件从内存读取所述调试信息,在 当前界面进行显示。在本发明的另一种优选实施例中,所述输出属性还可以包括输出方式的属性,所 述输出方式可以包括在新窗口中显示的方式,所述输出处理模块202进一步包括以下子模 块内存共享子模块,用于将当前的调试信息输出至内存;窗口显示子模块,用于通过所述调试信息输出插件创建一个新窗口,并从内存读 取所述调试信息,在所述新窗口中进行显示。在本发明的又一种优选实施例中,所述输出属性还可以包括输出方式的属性,所 述输出方式可以包括在日志文件中记录的方式,所述输出处理模块202进一步包括以下子 模块内存共享子模块,用于将当前的调试信息输出至内存;日志记录子模块,用于通过所述调试信息输出插件创建一个日志文件,并从内存 读取所述调试信息,写入所述日志文件中。在具体实现中,所述调试信息输出插件模块在Debug或Release版本下运行。由于本实施例基本相应于前述方法实施例,故本实施例的描述中未详尽之处,可 以参见前述实施例中的相关说明,在此就不赘述了。本发明优选可以应用在字幕机的编程环境或调试环境下。字幕机是一种电视节目 制作的专用设备,一般而言,字幕机是由PC加上专业的字幕叠加卡和相应的字幕制作系统 组成,用来在视频信号上叠加图文字幕。字幕制作系统就是控制字幕以何种方式叠加到背 景画面上,与使用者交互的工具;有了计算机和字幕软件后,需要有一个能够允许背景画面 输入,并且在叠加字幕以后,最终输出带有字幕视频的设备。要想接收视频进入,而后把视 频输出,是另外需要其他附加设备的,字幕叠加卡就是这样的设备。以上对本发明所提供的一种调试信息的输出方法及一种调试信息的输出系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人 员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明 书内容不应理解为对本发明的限制。
权利要求
1.一种调试信息的输出方法,其特征在于,包括预置调试信息输出插件,以及,调试信息输出配置文件,所述配置文件用于记录相关程 序的调试信息和相应的输出属性;当所述程序运行时,在满足预设条件的情况下输出当前的调试信息,所述预设条件为, 所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息的输出属性为需要输出ο
2.如权利要求1所述的方法,其特征在于,所述调试信息包括多个分组的调试信息;所 述输出属性包括当前程序的调试信息是否输出的第一属性以及各个分组的调度信息是否 输出的第二属性;所述输出调试信息的步骤进一步包括当所述程序运行时,打开所述配置文件判断所述第一属性是否为需要输出,若是,则判 断所述调试信息输出插件是否被触发;若是,则判断所述配置文件中记录的第二属性是否为需要输出,若是,则输出当前的调 1式f曰息O
3.如权利要求2所述的方法,其特征在于,所述输出属性还包括输出方式的属性,所述 输出方式包括在当前界面显示的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件从内存读取所述调试信息,在当前界面进行显示。
4.如权利要求2所述的方法,其特征在于,所述输出属性还包括输出方式的属性,所述 输出方式包括在新窗口中显示的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件创建一个新窗口,并从内存读取所述调试信息,在所述新窗口 中进行显示。
5.如权利要求2所述的方法,其特征在于,所述输出属性还包括输出方式的属性,所述 输出方式包括在日志文件中记录的方式,所述输出调试信息的步骤进一步包括将当前的调试信息输出至内存;所述调试信息输出插件创建一个日志文件,并从内存读取所述调试信息,写入所述日 志文件中。
6.一种调试信息的输出系统,其特征在于,包括预置模块,用于预置调试信息输出插件,以及,调试信息输出配置文件,所述配置文件 用于记录相关程序的调试信息和相应的输出属性;输出处理模块,用于在所述程序运行时,在满足预设条件的情况下输出当前的调试信 息,所述预设条件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息 的输出属性为需要输出。
7.如权利要求6所述的系统,其特征在于,所述调试信息包括多个分组的调试信息;所 述输出属性包括当前程序的调试信息是否输出的第一属性以及各个分组的调度信息是否 输出的第二属性;所述输出处理模块进一步包括第一判断子模块,用于在所述程序运行时,打开所述配置文件判断所述第一属性是否 为需要输出,若是,则触发第二判断子模块;第二判断子模块,用于判断所述调试信息输出插件是否被触发,若是,则触发第三判断子模块;第三判断子模块,用于判断所述配置文件中记录的第二属性是否为需要输出,若是,则 触发输出子模块;输出子模块,用于输出当前的调试信息。
8.如权利要求7所述的系统,其特征在于,所述输出属性还包括输出方式的属性,所述 输出方式包括在当前界面显示的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;界面显示子模块,用于通过所述调试信息输出插件从内存读取所述调试信息,在当前 界面进行显示。
9.如权利要求7所述的系统,其特征在于,所述输出属性还包括输出方式的属性,所述 输出方式包括在新窗口中显示的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;窗口显示子模块,用于通过所述调试信息输出插件创建一个新窗口,并从内存读取所 述调试信息,在所述新窗口中进行显示。
10.如权利要求7所述的系统,其特征在于,所述输出属性还包括输出方式的属性,所 述输出方式包括在日志文件中记录的方式,所述输出处理模块进一步包括内存共享子模块,用于将当前的调试信息输出至内存;日志记录子模块,用于通过所述调试信息输出插件创建一个日志文件,并从内存读取 所述调试信息,写入所述日志文件中。
全文摘要
本发明公开了一种调试信息的输出方法,包括预置调试信息输出插件,以及,调试信息输出配置文件,所述配置文件用于记录相关程序的调试信息和相应的输出属性;当所述程序运行时,在满足预设条件的情况下输出当前的调试信息,所述预设条件为,所述调试信息输出插件被触发,以及,所述配置文件中相应调试信息的输出属性为需要输出。本发明可以使调试信息的查看不受当前编程或调试环境的限制,简化程序开发人员的操作。
文档编号G06F11/36GK102073581SQ200910238728
公开日2011年5月25日 申请日期2009年11月23日 优先权日2009年11月23日
发明者廖健, 沈季, 郭红艳, 陈丽爱 申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1