[发明专利]一种文件处理方法及装置有效
申请号: | 201310287998.3 | 申请日: | 2013-07-10 |
公开(公告)号: | CN104142819A | 公开(公告)日: | 2014-11-12 |
发明(设计)人: | 吴云佳 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 处理 方法 装置 | ||
技术领域
本发明涉及一种计算机领域,具体涉及文件处理技术领域,尤其涉及一种文件处理方法及装置。
背景技术
在软件程序开发过程中,经常会有性能优化、内存泄漏检测等需求,这时需要对程序源文件中的函数或代码段进行精确的分析,监控程序的源文件中函数或代码段的运行耗时、内存消耗、CPU(Central Processing Unit,中央处理器)占用等指标,用于指导性能优化的方向或定位程序的漏洞bug。目前,对程序源文件的测试分析主要是通过对源文件进行插桩处理实现,插桩是指在保证程序原有逻辑完整性的基础上插入一些探针(桩代码),在被执行时输出程序运行的特征数据,通过这些特征数据来获得程序运行的相关信息,实现测试分析的目的。现有的文件插桩处理发生在程序编译阶段,即基于编译环境在程序源文件的相应位置插入桩代码,获得编译后的可执行程序;上述插桩处理过程需要对整个源文件进行分析,对于大型的程序来说,将会造成相当大的工作量,效率较低;另外,插入桩代码后的源文件直接被编译获得可执行程序,从而无法实现对插桩后的源文件进行操作,降低了文件操作的灵活性。
发明内容
本发明提供一种文件处理方法及装置,可提升文件处理效率,提升文件操作的灵活性。
本发明第一方面提供了一种文件处理方法,可包括:
扫描源文件,确定符合预设的文件过滤条件的目标文件块;
生成用于表示所述目标文件块的第一抽象语法树,并根据所述第一抽象语法树确定对所述目标文件块的插桩位置;
在所述确定的插桩位置对所述目标文件块进行插桩处理,生成用于表示插桩后的所述目标文件块的第二抽象语法树;
调用文件回写接口将所述第二抽象语法树回写至所述源文件中。
本发明第二方面提供了一种文件处理装置,可包括:
过滤模块,用于扫描源文件,确定符合预设的文件过滤条件的目标文件块;
确定模块,用于生成用于表示所述目标文件块的第一抽象语法树,并根据所述第一抽象语法树确定对所述目标文件块的插桩位置;
插桩处理模块,用于在所述确定的插桩位置对所述目标文件块进行插桩处理,生成用于表示插桩后的所述目标文件块的第二抽象语法树;
回写模块,用于调用文件回写接口将所述第二抽象语法树所表示的文件块回写至所述源文件中。
实施本发明实施例,具有如下有益效果:
本发明实施例扫描源文件确定符合预设的文件过滤条件的目标文件块进行文件处理,可以去掉源文件中不需要插桩处理的文件块,减少了文件处理所耗费的资源,提升了文件处理效率;另外,本发明实施例基于目标文件块的抽象语法树进行插桩处理,并将插桩后的抽象语法树回写至源文件中,从而使得完成插桩处理后的源文件依然以代码文件形式存在,方便用户对插桩处理后的源文件的操作,提升了文件操作灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种文件处理方法的流程图;
图2为本发明实施例提供的另一种文件处理方法的流程图;
图3为本发明实施例提供的又一种文件处理方法的流程图;
图4为本发明实施例提供的一种文件处理装置的结构示意图;
图5是本发明实施例提供的另一种文件处理装置的结构示意图;
图6为本发明实施例提供的确定模块的结构示意图;
图7为本发明实施例提供的插桩处理模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1-附图3,对本发明实施例提供的文件处理方法进行详细介绍。
请参见图1,为本发明实施例提供的一种文件处理方法的流程图;该方法可包括以下步骤S101-步骤S104。
S101,扫描源文件,确定符合预设的文件过滤条件的目标文件块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310287998.3/2.html,转载请声明来源钻瓜专利网。