[发明专利]无用代码检测方法、装置、电子设备及存储介质在审
申请号: | 202110745574.1 | 申请日: | 2021-06-30 |
公开(公告)号: | CN113590469A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 邓竹立;彭飞 | 申请(专利权)人: | 五八有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 吕俊秀 |
地址: | 300450 天津市滨海新区经济技术开*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 无用 代码 检测 方法 装置 电子设备 存储 介质 | ||
本发明提供了一种无用代码检测方法、装置、电子设备及存储介质。该方法包括:获取可执行的二进制文件,二进制文件是基于源代码编译得到的,二进制文件中包含来自源代码的至少一个第一地址和至少一个第二地址,第一地址为源代码中出现的代码的调用地址,第二地址为机器指令执行操作实际需要的代码的调用地址;将第一地址与至少一个第二地址进行匹配;响应于匹配的结果为第一地址存在于至少一个第二地址中,将第一地址对应的代码,确定为源代码的有用代码;将至少一个第一地址对应的代码中除有用代码之外的代码,确定为源代码的无用代码。如此,无需源代码的编译权限,不需要有源代码,即可完成源代码的无用代码的检测。
技术领域
本发明涉及计算机技术领域,尤其涉及一种无用代码检测方法、装置、电子设备及存储介质。
背景技术
目前,在进行应用程序的开发过程中,难免会存在一些无用代码。这些无用代码可能会影响应用程序的性能,例如增加应用程序的安装包的体积,以及影响应用程序启动的速度等等。为此,一般会对无用代码进行检测,以便对应用程序的性能进行分析。
相关技术中,进行无用代码检测时,可以是通过对源代码的编译期间产生的相关数据进行检测。但是这种无用代码检测方式,需要在有源代码的编译权限的情况下才能进行,使用不便。
发明内容
本发明实施例提供一种无用代码检测方法、装置、电子设备及存储介质,以解决相关技术中的问题。
本发明的目的是通过以下技术方案实现的:
第一方面,本发明实施例提供一种无用代码检测方法,包括:
获取可执行的二进制文件,所述二进制文件是基于源代码编译得到的,所述二进制文件中包含来自所述源代码的至少一个第一地址和至少一个第二地址,所述第一地址为所述源代码中出现的代码的调用地址,所述第二地址为机器指令执行操作实际需要的代码的调用地址;
将所述第一地址与所述至少一个第二地址进行匹配;
响应于所述匹配的结果为所述第一地址存在于所述至少一个第二地址中,将所述第一地址对应的代码,确定为所述源代码的有用代码;
将所述至少一个第一地址对应的代码中除所述有用代码之外的代码,确定为所述源代码的无用代码。
在一种可能的实施方式中,在所述将所述第一地址与所述至少一个第二地址进行匹配之前,所述方法还包括:
从所述二进制文件中查找出所述机器指令;
对所述机器指令进行反汇编,以得到汇编代码;
从所述汇编代码中解析出所述至少一个第二地址。
在一种可能的实施方式中,所述二进制文件还包含所述第一地址对应的代码的描述信息,所述第一地址携带在所述描述信息中;在所述将所述第一地址与所述至少一个第二地址进行匹配之前,所述方法还包括:
从所述二进制文件中查找出至少一个所述第一地址对应的代码的描述信息;
从所述描述信息中解析出所述第一地址,以得到所述至少一个第一地址。
在一种可能的实施方式中,所述二进制文件还包含所述第一地址对应的代码的域内所使用的代码的名称,所述方法还包括:
将所述域内所使用的代码的名称对应的代码,添加至所述源代码的有用代码中。
在一种可能的实施方式中,所述域内使用的代码的名称为属性的名称和/或父类的名称。
在一种可能的实施方式中,所述第一地址对应的代码为命名类型的代码,所述至少一个第一地址对应的代码中包括以下至少一种命名类型的代码:结构体、枚举、类。
第二方面,本发明实施例提供一种无用代码检测装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八有限公司,未经五八有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110745574.1/2.html,转载请声明来源钻瓜专利网。