[发明专利]识别无用代码的方法有效
| 申请号: | 201410072475.1 | 申请日: | 2014-02-28 |
| 公开(公告)号: | CN104881274B | 公开(公告)日: | 2018-02-13 |
| 发明(设计)人: | 李智荣;廖正新;陈城香 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30 |
| 代理公司: | 杭州千克知识产权代理有限公司33246 | 代理人: | 周希良 |
| 地址: | 201616 上海市松*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 识别 无用 代码 方法 | ||
技术领域
本发明涉及一种识别无用代码的方法。
背景技术
在软件开发和维护过程中,总会在不经意间留下一些无用的代码(即,垃圾代码),这些无用代码日积月累,越积越多,占用着宝贵的ROM空间与内存资源。
发明内容
本发明需解决的技术问题是提供一种识别无用代码的方法,识别出无用代码即可进行清理从而降低软件维护难度和减少所需的硬件空间。
为解决上述的技术问题,本发明设计了一种识别无用代码的方法,其特征在于,包括以下步骤:
步骤1:对源文件编译、链接生成映像文件;
步骤2:对所述映像文件编译、链接生成map文件,或对源文件编译、链接生成map文件;
步骤3:指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树;
步骤4:将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用符号。
作为本发明进一步改进,所述映像文件为可执行文件a.out。
本发明提供一种识别出无用代码的方法,识别出无用代码即可进行清理,从而降低软件维护难度,减少占用的硬件空间,最终降低产品成本,提高产品竞争力。
附图说明
图1是本发明识别无用代码的方法实施例的流程示意图。
具体实施方式
为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。
本发明提供了一种识别无用代码的方法,能将源文件的无用代码(即垃圾代码)识别出来。识别出无用代码,即可进行下一步的删除。删除了无用代码,可以降低软件维护难度和减少占用的硬件空间。
如图1所示,为本发明具体的实施方式,源文件中包括很多代码,其中包括无用代码和有用代码。
为了识别出无用代码,包括以下四个步骤:
步骤1:首先,对源文件编译、链接生成映像文件,在本实施例中,所述映像文件为可执行文件a.out。
步骤2:再对所述映像文件a.out进行编译、链接生成map文件。在本发明的其他实施例中,可对源文件编译、链接生成map文件,即map文件也可由源文件直接编译、链接生成。map文件中包含了源文件所有的代码的符号以及符号所在地址信息,即包括了无用代码的符号和有用代码的符号。
步骤3:指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树。指定入口函数main,即调出可调用的代码,可调用的代码即为有用的代码,因而,所述符号引用树包含的是有用代码的符号。
步骤4:将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用代码的符号。如图1中实施方式示出,map文件中的符号“main、test_2、test_1”可以在符号引用树中找到,为有用代码的符号,而“test_3”在符号引用树查找不到,“test_3”为无用代码的符号。因而,在符号引用树查找不到的符号即视为无用代码的符号。
本发明提供一种识别出无用代码的方法,识别出无用代码即可进行清理,从而降低软件维护难度,减少占用的硬件空间,最终降低产品成本,提高产品竞争力。
以上仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410072475.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高效的日志操作方法
- 下一篇:基于检测到的取向来提供标注





