[发明专利]调用堆栈关系获取方法及装置有效
申请号: | 201410084414.7 | 申请日: | 2014-03-07 |
公开(公告)号: | CN104899016B | 公开(公告)日: | 2018-10-09 |
发明(设计)人: | 母天石 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调用 堆栈 关系 获取 方法 装置 | ||
本发明公开了一种调用堆栈关系获取方法及装置,属于网络技术领域。该方法包括:对于打开的每一个页面,记录该页面所加载的多个代码文件;对于该页面中运行的多个代码文件中的每一个函数,在该函数开始运行和结束运行时,至少获取该函数的调用层次,该函数的调用层次包括调用该函数的函数名和该函数调用的函数名中的至少一项;根据该多个代码文件中每个函数的调用层次,得到该多个代码文件的调用堆栈关系。本发明得到的页面中多个代码文件的调用堆栈关系,可以直观显示该页面的函数之间的逻辑关系,使得开发人员在缺乏相应的函数名和程序注释的情况下,也可以对代码进行测试。
技术领域
本发明涉及网络技术领域,特别涉及一种调用堆栈关系获取方法及装置。
背景技术
JavaScript函数的调用堆栈关系指JavaScript函数之间的调用关系。例如,A文件a函数调用了B文件b函数,B文件b函数调用了C文件c函数,则调用堆栈关系可以表示为:A:a->B:b->C:c。开发人员根据该JavaScript函数的调用堆栈关系,能够在缺乏相应的函数名和程序注释的情况下,阅读JavaScript代码。
一般地,在JavaScript代码发布前,采用JavaScript代码混淆技术对待发布JavaScript代码进行混淆,将待发布代码中的所有变量、函数、类的名称变为简短的英文字母代号,去除待发布代码中的冗余信息,使得混淆后代码与混淆前代码完成相同的功能,混淆后代码很难被反编译,实现了对JavaScript代码的保护。
由于混淆后代码缺乏相应的函数名和程序注释,使得开发人员无法阅读混淆后代码,不能获取混淆后代码的函数之间的调用关系,无法对混淆后代码进行测试。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种调用堆栈关系获取方法及装置。所述技术方案如下:
一方面,提供了一种调用堆栈关系获取方法,所述方法包括:
对于打开的每一个页面,记录所述页面所加载的多个代码文件;
对于所述页面中运行的多个代码文件中的每一个函数,在所述函数开始运行和结束运行时,至少获取所述函数的调用层次,所述函数的调用层次包括调用所述函数的函数名和所述函数调用的函数名中的至少一项;
根据所述多个代码文件中每个函数的调用层次,得到所述多个代码文件的调用堆栈关系。
另一方面,提供了一种调用堆栈关系获取装置,所述装置包括:
代码文件加载模块,用于对于打开的每一个页面,记录所述页面所加载的多个代码文件;
调用信息获取模块,用于对于所述页面中运行的多个代码文件中的每一个函数,在所述函数开始运行和结束运行时,至少获取所述函数的调用层次,所述函数的调用层次包括调用所述函数的函数名和所述函数调用的函数名中的至少一项;
调用堆栈关系获取模块,用于根据所述多个代码文件中每个函数的调用层次,得到所述多个代码文件的调用堆栈关系。
本发明实施例提供的技术方案带来的有益效果是:
在代码运行过程中,对于打开的每一个页面,通过记录该页面所加载的多个代码文件,并记录函数开始运行和结束运行时的调用层次,从而得到该页面中多个代码文件的调用堆栈关系,该调用堆栈关系可以直观显示该页面中多个代码文件的函数之间的逻辑调用关系,使得开发人员在缺乏相应的函数名和程序注释的情况下,也可以对代码进行测试。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410084414.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:音调可变叮咚门铃
- 下一篇:一种本式发票自动售卖机的票本配送模块