[发明专利]函数调用的查询方法及装置、电子设备有效
申请号: | 201811434603.7 | 申请日: | 2018-11-28 |
公开(公告)号: | CN109542942B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 樊田田;周程祥 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F8/41;G06F11/36 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 褚敏;宫传芝 |
地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 调用 查询 方法 装置 电子设备 | ||
本发明公开了一种函数调用的查询方法及装置、电子设备。其中,该方法包括:获取待查询字段,其中,待查询字段对应有目标函数;获取预先解析的脚本函数文件,其中,脚本函数文件中包括预先对汇编文件进行代码块分解之后,解析得到的每个文件里调用到其它文件的函数列表;根据待查询字段,从脚本函数文件中查询出调用目标函数的所有函数。本发明解决了相关技术在游戏测试中,无法确定函数调用的影响范围的技术问题。
技术领域
本发明涉及函数查询的技术领域,具体而言,涉及一种函数调用的查询方法及装置、电子设备。
背景技术
目前,在游戏测试工作中,如果程序修改了一个底层函数,测试人员在测试时就比较难去确定真正影响和要回归的范围,进而特别容易遗漏掉影响到的测试点而导致外服出现问题,造成损失,因此及时的确认程序修改代码影响的范围在测试人员的测试工作中显得极为重要。
当前在游戏测试时,服务器游戏代码在开服前,游戏引擎会进行一个代码编译的操作,这个操作会将每个代码文件从.c文件中生成一个.d文件,这个.d文件里会罗列出代码文件里的函数列表,字符串列表,参数列表,函数调用的继承关系,以及每句代码的汇编语言转换等。对于这种确定代码编译的方式,如果要确定代码在修改时影响范围,需要一个个查询,并且后续需要人工一个个对照,确定每个代码修改是否正确,耗时耗力。
在目前的测试工作中,如果程序改动到了底层函数,如果想要确定影响的范围,唯一的办法就是找一个有代码权限的测试人员帮忙在代码仓库里进行全文搜索,来确定影响的范围。但是这种查询方式,如果查询的关键字很普遍,全文搜索时就会出现大量的匹配,从这大量的匹配中再去寻找真正需要注意的地方,就也是一项很大的工作量(例如去搜索give_reward,会发现整个代码仓库里有几千个give_reward,不仅包括调用,还包括不同文件的内部函数定义,从这几千个里面找到真正自己要的,那工作量简直无法想象)。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种函数调用的查询方法及装置、电子设备,以至少解决相关技术在游戏测试中,无法确定函数调用的影响范围的技术问题。
根据本发明实施例的一个方面,提供了一种函数调用的查询方法,包括:获取待查询字段,其中,所述待查询字段对应有目标函数;获取预先解析的脚本函数文件,其中,所述脚本函数文件中包括预先对汇编文件进行代码块分解之后,解析得到的每个文件里调用到其它文件的函数列表;根据所述待查询字段,从所述脚本函数文件中查询出调用所述目标函数的所有函数。
进一步地,获取预先解析的脚本函数文件包括:按照预设结构将所述汇编文件的内容分块,得到字符块和汇编解析块;对所述汇编解析块,按照文件函数进行分块,得到多个汇编函数块;对每个所述汇编函数块进行遍历,以得到所述脚本函数文件。
进一步地,对每个所述汇编函数块进行遍历,以得到所述脚本函数文件包括:对每一个所述汇编函数块,按照所述文件函数中的预设函数进行分块,得到多个汇编代码块;对每一个所述汇编代码块进行遍历,得到遍历结果;依据所述预设函数指示的参数,从遍历结果中提取与所述参数对应的参数个数对应的参数,得到提取结果;以所述预设函数和提取结果,建立与每个所述预设函数对应的参数列表,以得到所述脚本函数文件。
进一步地,对每一个所述汇编代码块进行遍历,得到遍历结果包括:由所述预设函数对每一个所述汇编代码块倒序遍历,其中,在遍历时对多个预设字符串遍历,所述多个预设字符串包括下述至少之一:push、string、运算符;根据遍历顺序,依次排列遍历每个参数,以得到所述遍历结果。
进一步地,在得到所述脚本函数文件之后,还包括:根据代码提交频率和函数使用量,确定代码更新时间段;依据所述代码更新时间段,对所述脚本函数文件进行更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811434603.7/2.html,转载请声明来源钻瓜专利网。