一种监控程序运行的方法和装置制造方法及图纸

技术编号:4027258 阅读:277 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种监控程序运行的方法和装置,用于对程序内部运行状态进行实时监控。所述方法包括:将程序源代码转换为源XML文件;将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;将所述目标XML文件转换为目标程序源代码。该技术方案通过在程序的源代码中注入了具有监控能力的代码,形成了具有监控能力的程序,所述具有监控能力的程序在运行中,具有监控能力的代码能够实时获取监控对象的信息,如进程、线程、函数或变量等程序内部信息,实现了对程序内部运行状态的实时监控,同时开发人员能够根据这些程序内部信息,快速发现并定位程序源代码中的错误之处。

【技术实现步骤摘要】

本专利技术软件开发领域,尤其涉及一种监控程序运行的方法和装置
技术介绍
随着社会的发展,企业对信息化软件的要求越来越高,如分布式处理、异地协同工 作等等,同时,企业越来越多的分支机构、越来越复杂的业务逻辑和越来越大的数据量,对 信息化软件的系统环境适应能力、交互性能及数据处理能力都提出了更高的要求。在这种 情况下,如何快速的发现并定位软件存在的问题,并以最快的速度解决问题,已经成为软件 管理人员及软件开发人员最关心的问题。一般情况下,只有当软件在运行过程中出现告警或错误提示,或软件的实际运行 结果与预期结果之间存在较大的误差时,软件管理人员才能得知软件存在问题,根据发生 的问题查找并定位程序源代码中的错误之处,之后对源代码进行修改和调试,解决软件中 存在的问题。通过对现有技术的研究,专利技术人发现现有技术中,无法实现对软件内部运行状态 的实时监控,此外也无法实现快速发现并定位程序源代码中的错误之处。
技术实现思路
为解决上述技术问题,本专利技术的目的在于提供一种监控程序运行的方法和装置, 使通过该方法可以实现对软件程序内部运行状态的实时监控,同时帮助开发人员快速发现 并定位程序源代码中的错误之处。为实现上述目的,本专利技术提供了如下技术方案一种监控程序运行的方法,包括将程序源代码转换为源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文件;将预先设定的监控探针文件编织到所述源XML文件中,得到目标XML文件;将所述目标XML文件转换为目标程序源代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:高军
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:88[中国|济南]

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

1