识别无用代码的方法

文档序号:8905085阅读:160来源:国知局
识别无用代码的方法
【技术领域】
[0001]本发明涉及一种识别无用代码的方法。
【背景技术】
[0002]在软件开发和维护过程中,总会在不经意间留下一些无用的代码(B卩,垃圾代码),这些无用代码日积月累,越积越多,占用着宝贵的ROM空间与内存资源。

【发明内容】

[0003]本发明需解决的技术问题是提供一种识别无用代码的方法,识别出无用代码即可进行清理从而降低软件维护难度和减少所需的硬件空间。
[0004]为解决上述的技术问题,本发明设计了一种识别无用代码的方法,其特征在于,包括以下步骤:
[0005]步骤1:对源文件编译、链接生成映像文件;
[0006]步骤2:对所述映像文件编译、链接生成map文件,或对源文件编译、链接生成map文件;
[0007]步骤3:指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树;
[0008]步骤4:将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用符号。
[0009]作为本发明进一步改进,所述映像文件为可执行文件a.0ut。
[0010]本发明提供一种识别出无用代码的方法,识别出无用代码即可进行清理,从而降低软件维护难度,减少占用的硬件空间,最终降低产品成本,提高产品竞争力。
【附图说明】
[0011]图1是本发明识别无用代码的方法实施例的流程示意图。
【具体实施方式】
[0012]为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。
[0013]本发明提供了一种识别无用代码的方法,能将源文件的无用代码(即垃圾代码)识别出来。识别出无用代码,即可进行下一步的删除。删除了无用代码,可以降低软件维护难度和减少占用的硬件空间。
[0014]如图1所示,为本发明具体的实施方式,源文件中包括很多代码,其中包括无用代码和有用代码。
[0015]为了识别出无用代码,包括以下四个步骤:
[0016]步骤1:首先,对源文件编译、链接生成映像文件,在本实施例中,所述映像文件为可执行文件a.0ut。
[0017]步骤2:再对所述映像文件a.0ut进行编译、链接生成map文件。在本发明的其他实施例中,可对源文件编译、链接生成map文件,即map文件也可由源文件直接编译、链接生成。map文件中包含了源文件所有的代码的符号以及符号所在地址信息,即包括了无用代码的符号和有用代码的符号。
[0018]步骤3:指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树。指定入口函数main,即调出可调用的代码,可调用的代码即为有用的代码,因而,所述符号引用树包含的是有用代码的符号。
[0019]步骤4:将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用代码的符号。如图1中实施方式示出,map文件中的符号“main、test_2、test_l”可以在符号引用树中找到,为有用代码的符号,而“test_3”在符号引用树查找不到,“test_3”为无用代码的符号。因而,在符号引用树查找不到的符号即视为无用代码的符号。
[0020]本发明提供一种识别出无用代码的方法,识别出无用代码即可进行清理,从而降低软件维护难度,减少占用的硬件空间,最终降低产品成本,提高产品竞争力。
[0021]以上仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种识别无用代码的方法,其特征在于,包括以下步骤: 步骤1:对源文件编译、链接生成映像文件; 步骤2:对所述映像文件编译、链接生成map文件,或对源文件编译、链接生成map文件; 步骤3:指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树; 步骤4:将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用符号。2.根据权利要求1所述的识别无用代码的方法,其特征在于,所述映像文件为可执行文件a.0ut。
【专利摘要】本发明提出了一种识别无用代码的方法,包括以下步骤:对源文件编译、链接生成映像文件;对所述映像文件编译、链接生成map文件;指定入口函数main,再通过对映像文件进行反汇编解析,得到入口函数main的符号引用树;将map文件列出的符号在所述符号引用树中查找,查找不到的符号即为无用符号。本发明提供一种识别出无用代码的方法,识别出无用代码即可进行清理,从而降低软件维护难度,减少占用的硬件空间,最终降低产品成本,提高产品竞争力。
【IPC分类】G06F9/44
【公开号】CN104881274
【申请号】CN201410072475
【发明人】李智荣, 廖正新, 陈城香
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年9月2日
【申请日】2014年2月28日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1