一种监控程序运行的方法和装置的制作方法

文档序号:6604514阅读:158来源:国知局
专利名称:一种监控程序运行的方法和装置的制作方法
技术领域
本发明软件开发领域,尤其涉及一种监控程序运行的方法和装置。
背景技术
随着社会的发展,企业对信息化软件的要求越来越高,如分布式处理、异地协同工 作等等,同时,企业越来越多的分支机构、越来越复杂的业务逻辑和越来越大的数据量,对 信息化软件的系统环境适应能力、交互性能及数据处理能力都提出了更高的要求。在这种 情况下,如何快速的发现并定位软件存在的问题,并以最快的速度解决问题,已经成为软件 管理人员及软件开发人员最关心的问题。一般情况下,只有当软件在运行过程中出现告警或错误提示,或软件的实际运行 结果与预期结果之间存在较大的误差时,软件管理人员才能得知软件存在问题,根据发生 的问题查找并定位程序源代码中的错误之处,之后对源代码进行修改和调试,解决软件中 存在的问题。通过对现有技术的研究,发明人发现现有技术中,无法实现对软件内部运行状态 的实时监控,此外也无法实现快速发现并定位程序源代码中的错误之处。

发明内容
为解决上述技术问题,本发明的目的在于提供一种监控程序运行的方法和装置, 使通过该方法可以实现对软件程序内部运行状态的实时监控,同时帮助开发人员快速发现 并定位程序源代码中的错误之处。为实现上述目的,本发明提供了如下技术方案一种监控程序运行的方法,包括将程序源代码转换为源XML文件;将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;将所述目标XML文件转换为目标程序源代码。优选的,所述监控探针文件的预设方式包括从所述源XML文件中获取并指定监控对象;设置监控控制信息;根据所述监控对象和所述监控控制信息得到监控需求;根据所述监控需求和预先设定的监控探针模板生成监控探针文件。优选的,所述监控对象包括程序的进程、线程、函数或变量。优选的,该方法还包括编译并运行所述目标程序源代码;获取被监控的程序返回的监控内容。优选的,所述监控程序运行的方法还包括显示和/或存储所述监控内容。本发明实施例还提供了一种监控程序运行的装置,包括
第一转换单元,用于将程序源代码转换为源XML文件;编织单元,用于将预先设定的监控探针文件编织到所述源XML文件中,得到目标 XML文件;第二转换单元,用于将所述目标XML文件转换为目标程序源代码。优选的,所述装置还包括监控对象设定单元,用于从所述源XML文件中获取并指定监控对象;监控控制信息设置单元,用于设置监控控制信息;监控需求生成单元,用于根据所述监控对象和所述监控控制信息生成监控需求;监控探针文件生成单元,用于根据所述监控需求和预先设定的监控探针模板生成 监控探针文件。优选的,所述监控对象包括程序的进程、线程、函数或变量。优选的,所述装置还包括编译运行模块,用于编译并运行所述目标程序源代码;监控内容获取模块,用于获取被监控的程序返回的监控内容。优选的,所述装置还包括显示单元,用于显示所述监控内容;存储单元,用于存储所述监控内容。应用本发明实施例所提供的技术方案,通过在程序的代码中注入了具有监控能力 的代码,形成了具有监控能力的程序,所述具有监控能力的程序在运行中,具有监控能力的 代码能够实时获取监控对象的信息,如进程、线程、函数或变量等程序内部信息,实现了对 程序内部运行状态的实时监控,同时开发人员能够根据这些程序内部信息,快速发现并定 位程序源代码中的错误之处。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例提供的监控程序运行方法的一种流程示意图;图2为本发明实施例提供的监控探针文件的预先设置的流程示意图;图3为本发明实施例提供的监控程序运行方法的又一种流程示意图;图4为本发明实施例提供的监控程序运行装置的一种结构示意图;图5为本发明实施例提供的监控程序运行装置的又一种结构示意图;图6为本发明实施例提供的监控程序运行装置的另一种结构示意图;图7为本发明实施例提供的监控程序运行装置的第四种结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
4本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。实施例一参见图1所示,为本发明实施例提供的监控程序运行的方法的一种流程图,该方 法包括以下步骤S101,将程序源代码转换为源XML文件。本步骤主要用于对程序的源代码进行分析,得到源代码的结构。具体可以通过 SRCML将程序源代码转换为XML格式的代码,得到源XML文件。然后编码分析源XML文件, 获取源程序中的进程、线程、函数及变量等信息,并将这些信息按照层次结构,以树状形式 展现给用户,将分析出的程序层次结构保存到源XML文件中。S102,将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件。探针注入工具利用XWEAVER,对源XML文件中的XML格式的代码,及预先设定的监 控探针文件进行编织,形成具备监控能力的XML格式的代码,得到目标XML文件。S103,将所述目标XML文件转换为目标程序源代码。通过SRCML将目标XML文件中的XML格式的代码,转换为具有监控能力的目标程 序源代码。参见图2提供的监控探针文件的预先设置的流程示意图,其实现方式如下S201,从所述源XML文件中获取并指定监控对象。通过所述源XML文件获取源程序中的进程、线程、函数及全局变量,使用点选的方 式选择需要监控的进程、线程、函数或变量等监控对象。S202,设置监控控制信息。设置监控对象的展示优先级、监控属性及监控模式等监控控制信息。其中,监控属 性包括运行所述程序的计算机的地址和端口号等信息,监控模式包括本地监控和异地 远程监控等信息。S203,根据监控对象和监控控制信息得到监控需求。结合监控对象和监控对象对应的控制信息,得到监控需求信息,并将监控需求信 息以XML文件的形式保存。监控需求可以根据监控对象分为四部分进程监控需求,描述监控进程的主函数,进程描述,进程下的所有线程以及线程的 构造函数,析构函数。
0064]线程监控需求,描述监控线程的类名,rim方法,run方法下的关注方法,线程描述 及线程的构造函数,析构函数。函数监控需求,函数分为两种类型。一种为普通函数,只需要描述函数的名称,函 数描述,函数所在线程,函数所在的类名。另一种为服务入口函数,它描述普通函数的几个 方面又关注函数中的关注方法。变量监控需求,描述变量的类型,变量名,变量所在的类名。S204,根据监控需求和监控探针模板生成监控探针文件。监控探针生成工具根据用户的监控需求结合预先设定的监控探针模板,生成监控 探针文件。其中预先设定的监控探针模板与所述源XML文件相适应。所述监控探针文件和所述监控探针模板可以为XML格式的文件。其中监控探针文件可以分为四类进程监控探针,用于对主函数进行监控,获取进程下的线程数等功能。线程监控探针,用于完成对线程的启动时间、结束时间、run方法下关注的方法等 功能的监控。函数监控探针,用于监控两种类型函数的开始时间、结束时间、执行方法等。变量监控探针,用于监视变量的改动时间,变量的变化值等。当然,在实际应用中,也可以采用其它的方式实现预设监控探针文件,例如不仅 可以通过分析选择所述源XML的方式获取并指定监控对象,还可以由软件开发人员在程序 编写过程中直接指定监控对象。参见图3所示,为本发明实施例提供的监控程序运行的方法又一种流程示意图, 该方法还可以包括S104,编译并运行所述目标程序源代码。编译并运行具有监控能力的目标程序源代码。运行后的程序将按照预设的模式提 供服务。S105,获取被监控的程序返回的监控内容。根据指定的监控模式,程序运行的地址和端口等信息,连接到具有监控能力的程 序后,被监控的程序在运行过程中,监控探针文件代码会实时获取监控对象的信息,并向监 控客户端上报监控需求中的监控内容。程序开发人员可以根据获取到的进程、线程、函数或 变量等程序内部信息,快速的从程序源代码中查找并定位错误之处。此外,所述监控程序运行的方法还可以包括S106,显示和/或存储所述监控内容。本发明方法实施例提供的监控程序运行的方法,通过在程序的代码中注入了具有 监控能力的代码,形成了具有监控能力的程序,所述具有监控能力的程序在运行中,具有监 控能力的代码能够实时获取监控对象的信息,如进程、线程、函数或变量等程序内部信息, 实现了对程序内部运行状态的实时监控,同时使开发人员能够根据这些程序内部信息,快 速发现并定位程序源代码中的错误之处。相应于上面方法实施例提供的一种监控程序运行的方法,本发明实施例还提供一 种监控程序运行的装置,参见图4的结构示意图所示,该装置包括第一转换单元401、编织 单元402和第二转换单元403。所述第一转换单元,用于将程序源代码转换为源XML文件;所述编织单元,用于将预先设定的监控探针文件编织到所述源XML文件中,得到 目标XML文件;所述第二转换单元,用于将所述目标XML文件转换为目标程序源代码。参见图5所示,为所述监控程序运行的装置的又一种结构示意图,还可以包括监控对象设定单元501,用于从所述源XML文件中获取并指定监控对象;监控控制信息设置单元502,用于设置监控控制信息;监控需求生成单元503,用于根据所述监控对象和所述监控控制信息生成监控需 求;
监控探针文件生成单元504,用于根据所述监控需求和预先设定的监控探针模板 生成监控探针文件。其中,所述监控对象设定单元501、监控控制信息设置单元502和监控需求生成单 元503,可以提供一个可视化的编辑界面,用户可以通过该界面选择设定需要监控的进程、 线程、函数或变量等监控对象,并为不同监控对象设置展现优先级,监控属性及监控模式等 监控控制信息。监控需求生成单元503,根据所述监控对象和所述监控控制信息生成监控需 求,并以XML文件的形式记录存储所述监控需求。其中,所述监控对象可以包括程序的进程、线程、函数或变量。参见图6所示,为所述监控程序运行的装置的另一种结构示意图,该装置还可以 包括编译运行模块601,用于编译并运行所述目标程序源代码;监控内容获取模块602,用于获取被监控的程序返回的监控内容。参见图7的监控程序运行的装置结构示意图所示,该装置还可以包括显示单元701,用于显示所述监控内容;存储单元702,用于存储所述监控内容。应用本发明实施例所提供的监控程序运行的装置,通过在程序的代码中注入了具 有监控能力的代码,形成了具有监控能力的程序,所述具有监控能力的程序在运行中,具有 监控能力的代码能够实时获取监控对象的信息,如进程、线程、函数或变量等程序内部信 息,实现了对程序内部运行状态的实时监控,同时使开发人员能够根据这些程序内部信息, 快速发现并定位程序源代码中的错误之处。对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实 施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件 说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以 不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的 需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不 付出创造性劳动的情况下,即可以理解并实施。在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,在没有超过本 申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不 应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划 分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子 单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特 征可以忽略,或不执行。另外,所描述装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可 以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电 性,机械或其它的形式。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种监控程序运行的方法,其特征在于,包括将程序源代码转换为源XML文件;将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;将所述目标XML文件转换为目标程序源代码。
2.根据权利要求1所述的方法,其特征在于,所述监控探针文件的预设方式包括 从所述源XML文件中获取并指定监控对象;设置监控控制信息; 根据所述监控对象和所述监控控制信息得到监控需求; 根据所述监控需求和预先设定的监控探针模板生成监控探针文件。
3.根据权利要求2所述的方法,其特征在于,所述监控对象包括 程序的进程、线程、函数或变量。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括 编译并运行所述目标程序源代码;获取被监控的程序返回的监控内容。
5.根据权利要求4所述的方法,其特征在于,还包括 显示和/或存储所述监控内容。
6.一种监控程序运行的装置,其特征在于,包括第一转换单元,用于将程序源代码转换为源XML文件;编织单元,用于将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;第二转换单元,用于将所述目标XML文件转换为目标程序源代码。
7.根据权利要求6所述的装置,其特征在于,还包括监控对象设定单元,用于从所述源XML文件中获取并指定监控对象; 监控控制信息设置单元,用于设置监控控制信息;监控需求生成单元,用于根据所述监控对象和所述监控控制信息生成监控需求; 监控探针文件生成单元,用于根据所述监控需求和预先设定的监控探针模板生成监控 探针文件。
8.根据权利要求7所述的装置,其特征在于,所述监控对象包括 程序的进程、线程、函数或变量。
9.根据权利要求6至8任一项所述的装置,其特征在于,还包括 编译运行模块,用于编译并运行所述目标程序源代码;监控内容获取模块,用于获取被监控的程序返回的监控内容。
10.根据权利要求9所述的装置,其特征在于,还包括 显示单元,用于显示所述监控内容;存储单元,用于存储所述监控内容。
全文摘要
本发明实施例公开了一种监控程序运行的方法和装置,用于对程序内部运行状态进行实时监控。所述方法包括将程序源代码转换为源XML文件;将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;将所述目标XML文件转换为目标程序源代码。该技术方案通过在程序的源代码中注入了具有监控能力的代码,形成了具有监控能力的程序,所述具有监控能力的程序在运行中,具有监控能力的代码能够实时获取监控对象的信息,如进程、线程、函数或变量等程序内部信息,实现了对程序内部运行状态的实时监控,同时开发人员能够根据这些程序内部信息,快速发现并定位程序源代码中的错误之处。
文档编号G06F11/36GK101853205SQ201010206449
公开日2010年10月6日 申请日期2010年6月23日 优先权日2010年6月23日
发明者高军 申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1