識別無用代碼的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種識別無用代碼的方法。
【背景技術(shù)】
[0002]在軟件開發(fā)和維護(hù)過程中,總會(huì)在不經(jīng)意間留下一些無用的代碼(B卩,垃圾代碼),這些無用代碼日積月累,越積越多,占用著寶貴的ROM空間與內(nèi)存資源。
【發(fā)明內(nèi)容】
[0003]本發(fā)明需解決的技術(shù)問題是提供一種識別無用代碼的方法,識別出無用代碼即可進(jìn)行清理從而降低軟件維護(hù)難度和減少所需的硬件空間。
[0004]為解決上述的技術(shù)問題,本發(fā)明設(shè)計(jì)了一種識別無用代碼的方法,其特征在于,包括以下步驟:
[0005]步驟1:對源文件編譯、鏈接生成映像文件;
[0006]步驟2:對所述映像文件編譯、鏈接生成map文件,或?qū)υ次募幾g、鏈接生成map文件;
[0007]步驟3:指定入口函數(shù)main,再通過對映像文件進(jìn)行反匯編解析,得到入口函數(shù)main的符號引用樹;
[0008]步驟4:將map文件列出的符號在所述符號引用樹中查找,查找不到的符號即為無用符號。
[0009]作為本發(fā)明進(jìn)一步改進(jìn),所述映像文件為可執(zhí)行文件a.0ut。
[0010]本發(fā)明提供一種識別出無用代碼的方法,識別出無用代碼即可進(jìn)行清理,從而降低軟件維護(hù)難度,減少占用的硬件空間,最終降低產(chǎn)品成本,提高產(chǎn)品競爭力。
【附圖說明】
[0011]圖1是本發(fā)明識別無用代碼的方法實(shí)施例的流程示意圖。
【具體實(shí)施方式】
[0012]為了使本領(lǐng)域相關(guān)技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施方式的附圖,對本發(fā)明實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式僅僅是本發(fā)明一部分實(shí)施方式,而不是全部的實(shí)施方式。
[0013]本發(fā)明提供了一種識別無用代碼的方法,能將源文件的無用代碼(即垃圾代碼)識別出來。識別出無用代碼,即可進(jìn)行下一步的刪除。刪除了無用代碼,可以降低軟件維護(hù)難度和減少占用的硬件空間。
[0014]如圖1所示,為本發(fā)明具體的實(shí)施方式,源文件中包括很多代碼,其中包括無用代碼和有用代碼。
[0015]為了識別出無用代碼,包括以下四個(gè)步驟:
[0016]步驟1:首先,對源文件編譯、鏈接生成映像文件,在本實(shí)施例中,所述映像文件為可執(zhí)行文件a.0ut。
[0017]步驟2:再對所述映像文件a.0ut進(jìn)行編譯、鏈接生成map文件。在本發(fā)明的其他實(shí)施例中,可對源文件編譯、鏈接生成map文件,即map文件也可由源文件直接編譯、鏈接生成。map文件中包含了源文件所有的代碼的符號以及符號所在地址信息,即包括了無用代碼的符號和有用代碼的符號。
[0018]步驟3:指定入口函數(shù)main,再通過對映像文件進(jìn)行反匯編解析,得到入口函數(shù)main的符號引用樹。指定入口函數(shù)main,即調(diào)出可調(diào)用的代碼,可調(diào)用的代碼即為有用的代碼,因而,所述符號引用樹包含的是有用代碼的符號。
[0019]步驟4:將map文件列出的符號在所述符號引用樹中查找,查找不到的符號即為無用代碼的符號。如圖1中實(shí)施方式示出,map文件中的符號“main、test_2、test_l”可以在符號引用樹中找到,為有用代碼的符號,而“test_3”在符號引用樹查找不到,“test_3”為無用代碼的符號。因而,在符號引用樹查找不到的符號即視為無用代碼的符號。
[0020]本發(fā)明提供一種識別出無用代碼的方法,識別出無用代碼即可進(jìn)行清理,從而降低軟件維護(hù)難度,減少占用的硬件空間,最終降低產(chǎn)品成本,提高產(chǎn)品競爭力。
[0021]以上僅表達(dá)了本發(fā)明的一種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種識別無用代碼的方法,其特征在于,包括以下步驟: 步驟1:對源文件編譯、鏈接生成映像文件; 步驟2:對所述映像文件編譯、鏈接生成map文件,或?qū)υ次募幾g、鏈接生成map文件; 步驟3:指定入口函數(shù)main,再通過對映像文件進(jìn)行反匯編解析,得到入口函數(shù)main的符號引用樹; 步驟4:將map文件列出的符號在所述符號引用樹中查找,查找不到的符號即為無用符號。2.根據(jù)權(quán)利要求1所述的識別無用代碼的方法,其特征在于,所述映像文件為可執(zhí)行文件a.0ut。
【專利摘要】本發(fā)明提出了一種識別無用代碼的方法,包括以下步驟:對源文件編譯、鏈接生成映像文件;對所述映像文件編譯、鏈接生成map文件;指定入口函數(shù)main,再通過對映像文件進(jìn)行反匯編解析,得到入口函數(shù)main的符號引用樹;將map文件列出的符號在所述符號引用樹中查找,查找不到的符號即為無用符號。本發(fā)明提供一種識別出無用代碼的方法,識別出無用代碼即可進(jìn)行清理,從而降低軟件維護(hù)難度,減少占用的硬件空間,最終降低產(chǎn)品成本,提高產(chǎn)品競爭力。
【IPC分類】G06F9/44
【公開號】CN104881274
【申請?zhí)枴緾N201410072475
【發(fā)明人】李智榮, 廖正新, 陳城香
【申請人】上海斐訊數(shù)據(jù)通信技術(shù)有限公司
【公開日】2015年9月2日
【申請日】2014年2月28日