本發(fā)明有關(guān)于一種函式管理方法與內(nèi)存裝置,特別有關(guān)于一種能夠分析普通函式與api函式之間的對(duì)應(yīng)關(guān)系、以及普通函式之間的呼叫關(guān)系之函式管理方法與內(nèi)存裝置。
背景技術(shù):
一般而言,內(nèi)存裝置會(huì)儲(chǔ)存許多內(nèi)部?jī)?chǔ)存程序(isp,internalstoredprogram)。在一塊內(nèi)存中通常儲(chǔ)存了使用于不同功能模塊的內(nèi)部?jī)?chǔ)存程序。當(dāng)用戶要使用某個(gè)功能模塊時(shí),則上述功能模塊的內(nèi)部?jī)?chǔ)存程序的程序代碼會(huì)被加載到此內(nèi)存,以執(zhí)行被加載的程序代碼并且指定應(yīng)用程序編程接口(api,applicationprogramminginterface)函式(function)所對(duì)應(yīng)的普通函式。然而,當(dāng)內(nèi)存裝置使用api函式時(shí),現(xiàn)行的函式管理方法無(wú)法直接藉由api函式分析出內(nèi)部?jī)?chǔ)存程序中的普通函式之間的上下呼叫關(guān)系,而降低內(nèi)存裝置的讀寫(xiě)效能。因此,需要一種能夠分析普通函式與api函式之間的對(duì)應(yīng)關(guān)系、以及普通函式之間的呼叫關(guān)系的函式管理方法,以提升內(nèi)存裝置的效能。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問(wèn)題,本發(fā)明提出一種藉由編譯程序(compiler)的映像檔案(mapfile)分析普通函式與api函式之間的對(duì)應(yīng)關(guān)系、以及分析普通函式之間的呼叫關(guān)系的函式管理方法,以提升內(nèi)存裝置的效能。此外,本發(fā)明所提出的函式管理方法是以表格化與圖形化的方式來(lái)呈現(xiàn),讓使用者與研發(fā)人員能夠快速且有效率的執(zhí)行內(nèi)存裝置中的各種函式。
本發(fā)明的一實(shí)施例提供了一種應(yīng)用于內(nèi)存裝置的函式管理方法,包括藉由一編譯程序的映像檔案取得多個(gè)函式,以及藉由映像檔案對(duì)內(nèi)存裝置中的至少一原始碼進(jìn)行語(yǔ)法分析。上述函式包括至少一普通函式與至少一api函式,上述語(yǔ)法分析包括建立至少一api函式與至少一普通函式的對(duì)應(yīng)關(guān)系,以及建立至少一普通函式之間的呼叫關(guān)系。
在藉由映射檔案取得多個(gè)函式的步驟中,還包括建立至少一普通函式的普通函式數(shù)據(jù)庫(kù)以及建立至少一api函式的api函式數(shù)據(jù)庫(kù)。普通函式數(shù)據(jù)庫(kù)記錄至少一普通函式的名稱、至少一普通函式所呼叫的函式數(shù)量、呼叫至少一普通函式的函式數(shù)量、及/或至少一普通函式是否對(duì)應(yīng)至少一api函式,并且api函式數(shù)據(jù)庫(kù)記錄至少一api函式的名稱。再者,映像檔案包括至少一api函式與至少一普通函式的名稱,用以對(duì)內(nèi)存裝置會(huì)使用到的api函式與普通函式的原始碼進(jìn)行語(yǔ)法分析。
此外,在建立至少一api函式與至少一普通函式的對(duì)應(yīng)關(guān)系的步驟中,還包括讀取原始碼,以及依據(jù)原始碼判斷至少一api函式中的任一者是否對(duì)應(yīng)到至少一普通函式。當(dāng)依據(jù)原始碼判斷至少一api函式中的任一者對(duì)應(yīng)到至少一普通函式,從普通函式數(shù)據(jù)庫(kù)以及api函式數(shù)據(jù)庫(kù)中取得具有對(duì)應(yīng)關(guān)系的普通函式以及api函式,于普通函式數(shù)據(jù)庫(kù)中標(biāo)記普通函式對(duì)應(yīng)api函式,并且將普通函式與api函式的對(duì)應(yīng)關(guān)系記錄于一對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)。
在建立至少一普通函式之間的呼叫關(guān)系的步驟中,還包括讀取原始碼,依據(jù)原始碼自普通函式數(shù)據(jù)庫(kù)中取得關(guān)于原始碼的普通函式,以及判斷原始碼的普通函式所呼叫的函式為普通函式或api函式。當(dāng)原始碼的普通函式所呼叫的函式為普通函式時(shí),將普通函式與被普通函數(shù)調(diào)用的普通函式之間的呼叫關(guān)系記錄于一呼叫關(guān)系數(shù)據(jù)庫(kù)。當(dāng)原始碼的普通函式所呼叫的函式為api函式時(shí),藉由對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)取得被呼叫的api函式所對(duì)應(yīng)的普通函式,將普通函式與api函式所對(duì)應(yīng)的普通函式之間的呼叫關(guān)系記錄于呼叫關(guān)系數(shù)據(jù)庫(kù)。
本發(fā)明的另一實(shí)施例提供了一種具有函式管理功能的內(nèi)存裝置,包括語(yǔ)法分析模塊以及數(shù)據(jù)庫(kù)模塊。語(yǔ)法分析模塊藉由一編譯程序的映像檔案取得多個(gè)函式,以及藉由映像檔案對(duì)內(nèi)存裝置中的至少一原始碼(sourcecode)進(jìn)行語(yǔ)法分析。上述函式包括至少一普通函式與至少一api函式。數(shù)據(jù)庫(kù)模塊依據(jù)語(yǔ)法分析模塊所進(jìn)行的語(yǔ)法分析,建立至少一api函式與至少一普通函式的對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù),以及建立至少一普通函式之間的呼叫關(guān)系數(shù)據(jù)庫(kù)。
附圖說(shuō)明
圖1是顯示根據(jù)本發(fā)明一實(shí)施例所述的內(nèi)存裝置的示意圖;
圖2是顯示根據(jù)本發(fā)明一實(shí)施例所述的各種數(shù)據(jù)庫(kù)的示意圖;
圖3是顯示根據(jù)本發(fā)明一實(shí)施例所述的函式管理方法的流程圖;
圖4是顯示根據(jù)本發(fā)明一實(shí)施例所述的載入映像檔案的流程圖;
圖5是顯示根據(jù)本發(fā)明一實(shí)施例所述的第一次語(yǔ)法分析的流程圖;
圖6是顯示根據(jù)本發(fā)明一實(shí)施例所述的第二次語(yǔ)法分析的流程圖。
符號(hào)說(shuō)明
10~內(nèi)存裝置;
110~映像檔案;
120~原始碼;
130~語(yǔ)法分析模塊;
140~數(shù)據(jù)庫(kù)模塊;
150a、150b、150c、150d~數(shù)據(jù)庫(kù)。
s300-s304、s400-s410、s500-s514、s600-s614~步驟
具體實(shí)施方式
以下揭示的內(nèi)容提供許多不同的實(shí)施例或范例以實(shí)施本案的不同特征。以下揭示內(nèi)容敘述各個(gè)構(gòu)件及其排列方式的特定范例,以簡(jiǎn)化說(shuō)明。當(dāng)然,這些特定的范例并非用以限定。例如,若是本揭示書(shū)敘述了一第一特征形成于一第二特征之上或上方,即表示其可能包含上述第一特征與上述第二特征是直接接觸的實(shí)施例,亦可能包含了有附加特征形成于上述第一特征與上述第二特征之間,而使上述第一特征與第二特征可能未直接接觸的實(shí)施例。另外,以下揭露書(shū)不同范例可能重復(fù)使用相同的參考符號(hào)及/或標(biāo)記。這些重復(fù)是為了簡(jiǎn)化與清晰的目的,并非用以限定所討論的不同實(shí)施例及/或結(jié)構(gòu)之間有特定的關(guān)系。
圖1是顯示根據(jù)本發(fā)明一實(shí)施例所述的內(nèi)存裝置10的示意圖。內(nèi)存裝置10可以是隨機(jī)存取內(nèi)存(randomaccessmemory,ram)、只讀存儲(chǔ)器(readonlymemory,rom)、閃存(flash)、硬盤、軟盤、磁性內(nèi)存等。如圖1所示,內(nèi)存裝置10包括映像檔案(mapfile)110、原始碼(sourcecode)120、語(yǔ)法分析(parsing)模塊130、數(shù)據(jù)庫(kù)(database)模塊140、以及多個(gè)數(shù)據(jù)庫(kù)150a~150d。上述語(yǔ)法分析模塊130與數(shù)據(jù)庫(kù)模塊140可以利用電路硬件或嵌入式軟件碼加以實(shí)現(xiàn),該嵌入式軟件碼可以由一處理器存取以及執(zhí)行。此外,內(nèi)存裝置10可配置于一電子裝置中。舉例而言,上述電子裝置可以為手機(jī)、平板計(jì)算機(jī)、筆記本電腦或是pda等行動(dòng)電子裝置,或是桌面計(jì)算機(jī)、服務(wù)器等電子裝置。因此,內(nèi)存裝置10可用以儲(chǔ)存電子裝置的各種功能所需要的函式及其原始碼等。
在一實(shí)施例中,映像檔案110來(lái)自一編譯程序(compiler)。語(yǔ)法分析模塊130藉由映像檔案110取得多個(gè)函式(function),以及藉由映像檔案110對(duì)該內(nèi)存裝置10中的至少一原始碼120進(jìn)行語(yǔ)法分析。此外,上述函式包括至少一普通函式與至少一應(yīng)用程序編程接口(api,applicationprogramminginterface)函式。詳細(xì)而言,api函式主要是作為溝通中介之用,不干涉原始碼120的執(zhí)行動(dòng)作。api函式的優(yōu)點(diǎn)在于讓程序開(kāi)發(fā)人員利用例程功能取代底層的原始碼120,加速開(kāi)發(fā)流程。相對(duì)于api函式,普通函式則是真實(shí)函式(realfunction)。一般而言,一個(gè)api函式可以對(duì)應(yīng)一個(gè)或多個(gè)api函式。因此,記錄與分析普通函式與api函式之間的對(duì)應(yīng)關(guān)系,有助于研發(fā)人員進(jìn)行開(kāi)發(fā)并且提升內(nèi)存裝置10的效能。
值得注意的是,映像檔案110系包括至少一api函式與至少一普通函式的名稱。在一實(shí)施例中,可藉由不同的命名方式來(lái)區(qū)別api函式以及普通函式。舉例來(lái)說(shuō),如果函式名稱以api作為開(kāi)頭者就是api函式,如果函式名稱不是以api作為開(kāi)頭者就是普通函式。因此,語(yǔ)法分析模塊130能夠藉由映像檔案110,對(duì)內(nèi)存裝置10會(huì)使用到的api函式與普通函式的原始碼120進(jìn)行語(yǔ)法分析。在一實(shí)施例中,實(shí)際上不會(huì)被使用的函式就不需要進(jìn)行語(yǔ)法分析,以增加語(yǔ)法分析模塊130的分析效力。
此外,數(shù)據(jù)庫(kù)模塊140系藉由該映射檔案110建立至少一普通函式的普通函式數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)150a)、以及至少一api函式的api函式數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)150b)。圖2是顯示根據(jù)本發(fā)明一實(shí)施例所述的各種數(shù)據(jù)庫(kù)150a~150d的示意圖。如圖2所示,普通函式數(shù)據(jù)庫(kù)150a記錄普通函式的索引(index字段)、普通函式的名稱(name字段)、普通函式所呼叫的函式數(shù)量(calling字段)、呼叫該普通函式的函式數(shù)量(called字段)、及/或普通函式是否對(duì)應(yīng)api函式等(alternative字段)。此外,api函式數(shù)據(jù)庫(kù)150b記錄api函式的名稱(name字段)。
在圖2所示的普通函式數(shù)據(jù)庫(kù)中,每個(gè)普通函式都有一個(gè)索引編號(hào)。舉例而言,索引編號(hào)122的函式名稱為isp_nf_ftl_cleanpart2n3,并且此普通函數(shù)調(diào)用了3個(gè)普通函式(calling字段為3)、被6個(gè)普通函式所呼叫(called字段為6)、以及具有對(duì)應(yīng)的api函式(alternative字段為1)。再者,索引編號(hào)124的函式名稱為isp_nf_ftl_erase_trim_modeentry,并且此普通函數(shù)調(diào)用了1個(gè)普通函式(calling字段為1)、被7個(gè)普通函式所呼叫(called字段為7)、以及沒(méi)有對(duì)應(yīng)的api函式(alternative字段為0)。此外,圖2所示的api函式數(shù)據(jù)庫(kù)記錄了api函式的名稱(name字段)。舉例而言,索引編號(hào)0的api函式名稱為api_ctl_errhandle,索引編號(hào)1的api函式名稱為api_ctl_funcsel。
在一實(shí)施例中,語(yǔ)法分析模塊130進(jìn)行第一次語(yǔ)法分析找出普通函式與api函式的對(duì)應(yīng)關(guān)系,并且數(shù)據(jù)庫(kù)模塊140建立該至少一api函式與該至少一普通函式的對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)150c)。在圖2所示的對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)中,記錄了api函式的名稱(name字段)及其所對(duì)應(yīng)的一個(gè)以上的普通函式(f-index字段)。每個(gè)索引編號(hào)代表一個(gè)對(duì)應(yīng)關(guān)系。舉例而言,索引編號(hào)0的字段記錄了名稱為api_nf_ftl_reportexe的api函式對(duì)應(yīng)到編號(hào)為128的普通函式,索引編號(hào)1的字段記錄了名稱為api_nf_ftl_reportexe的api函式對(duì)應(yīng)到編號(hào)為130的普通函式。由此可知,api_nf_ftl_reportexe之a(chǎn)pi函式系對(duì)應(yīng)到多個(gè)普通函式。此外,索引編號(hào)4的字段記錄了名稱為api_nf_pftl_read_syspage_retry的api函式對(duì)應(yīng)到編號(hào)210的普通函式。由此可知,api_nf_pftl_read_syspage_retry之a(chǎn)pi函式系對(duì)應(yīng)到1個(gè)普通函式。
在一實(shí)施例中,語(yǔ)法分析模塊130進(jìn)行第二次語(yǔ)法分析以找出普通函式之間的上下呼叫關(guān)系,并且數(shù)據(jù)庫(kù)模塊140建立至少一普通函式之間的呼叫關(guān)系數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)150d)。圖2所示的呼叫關(guān)系數(shù)據(jù)庫(kù)所記錄的是普通函式的編號(hào)。每個(gè)索引編號(hào)代表一個(gè)呼叫關(guān)系,包含了呼叫者以及被呼叫者的普通函式的編號(hào)。舉例而言,索引編號(hào)0的字段記錄了編號(hào)為138普通函數(shù)調(diào)用編號(hào)為113的普通函式,索引編號(hào)1的字段記錄了編號(hào)為138普通函數(shù)調(diào)用編號(hào)為110的普通函式,索引編號(hào)2的字段記錄了編號(hào)為105普通函數(shù)調(diào)用編號(hào)為103的普通函式。由此可知,編號(hào)138的普通函數(shù)調(diào)用了2個(gè)普通函式,而編號(hào)105的普通函數(shù)調(diào)用了1個(gè)普通函式。
詳細(xì)而言,當(dāng)語(yǔ)法分析模塊130判斷多個(gè)api函式中的任一者對(duì)應(yīng)到一普通函式時(shí),數(shù)據(jù)庫(kù)模塊140從普通函式數(shù)據(jù)庫(kù)150a以及api函式數(shù)據(jù)庫(kù)150b中取得具有對(duì)應(yīng)關(guān)系的該普通函式以及該api函式。然后,數(shù)據(jù)庫(kù)模塊140于普通函式數(shù)據(jù)庫(kù)150a之中標(biāo)記該普通函式對(duì)應(yīng)該api函式,并且將該普通函式與該api函式的對(duì)應(yīng)關(guān)系記錄于對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c。此外,當(dāng)語(yǔ)法分析模塊130判斷原始碼120之普通函式所呼叫的函式為普通函式時(shí),數(shù)據(jù)庫(kù)模塊140將該普通函式與被該普通函數(shù)調(diào)用的普通函式之間的呼叫關(guān)系記錄于呼叫關(guān)系數(shù)據(jù)庫(kù)150d。
另一方面,當(dāng)語(yǔ)法分析模塊130判斷原始碼120的普通函式所呼叫的函式為apli函式時(shí),數(shù)據(jù)庫(kù)模塊140會(huì)藉由對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c取得該呼叫的api函式所對(duì)應(yīng)的普通函式,以及將該普通函式與該api函式所對(duì)應(yīng)的普通函式之間的呼叫關(guān)系記錄于呼叫關(guān)系數(shù)據(jù)庫(kù)150d。本發(fā)明所提出的內(nèi)存裝置10及其函式管理方法,能夠分析普通函式與api函式之間的對(duì)應(yīng)關(guān)系、以及普通函式之間的呼叫關(guān)系的函式管理方法,因而提升內(nèi)存裝置10的效能并且方便管理內(nèi)存裝置10。
圖3是顯示根據(jù)本發(fā)明一實(shí)施例所述的函式管理方法的流程圖。在步驟s300,語(yǔ)法分析模塊130加載編譯程序的映像檔案110以取得多個(gè)普通函式與api函式,并且數(shù)據(jù)庫(kù)模塊140建立普通函式數(shù)據(jù)庫(kù)150a與api函式數(shù)據(jù)庫(kù)150b。在步驟s302中,語(yǔ)法分析模塊130進(jìn)行第一次語(yǔ)法分析,數(shù)據(jù)庫(kù)模塊140根據(jù)第一次語(yǔ)法分析的結(jié)果而建立api函式與普通函式之間的對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c。然后在步驟s304,語(yǔ)法分析模塊130進(jìn)行第二次語(yǔ)法分析,數(shù)據(jù)庫(kù)模塊140根據(jù)第二次語(yǔ)法分析的結(jié)果而建立普通函式之間的呼叫關(guān)系數(shù)據(jù)庫(kù)150d。值得注意的是,上述各種數(shù)據(jù)庫(kù)150a~150d彼此關(guān)聯(lián)并且實(shí)時(shí)更新的。當(dāng)呼叫關(guān)系數(shù)據(jù)庫(kù)150d新增一組普通函式的呼叫關(guān)系時(shí),普通函式數(shù)據(jù)庫(kù)150a中的上述普通函式的calling字段或called字段的數(shù)值也會(huì)同步更新。
圖4是顯示根據(jù)本發(fā)明一實(shí)施例所述的載入映像檔案110的流程圖。在步驟s400,語(yǔ)法分析模塊130是否讀取映像檔案110。如果語(yǔ)法分析模塊130沒(méi)有讀取映像檔案110,則執(zhí)行步驟s410結(jié)束流程。如果語(yǔ)法分析模塊130讀取映像檔案110,則執(zhí)行步驟s402使得語(yǔ)法分析模塊130藉由映像檔案110取得多個(gè)函式。然后,在步驟s404中,語(yǔ)法分析模塊130判斷所取得的函式為普通函式或api函式。如果語(yǔ)法分析模塊130判斷所取得的函式為普通函式,執(zhí)行步驟s406使得數(shù)據(jù)庫(kù)模塊140將該普通函式記錄于普通函式數(shù)據(jù)庫(kù)150a,然后流程結(jié)束。如果語(yǔ)法分析模塊130判斷所取得的函式為api函式,執(zhí)行步驟s408使得數(shù)據(jù)庫(kù)模塊140將該api函式記錄于api函式數(shù)據(jù)庫(kù)150b,然后流程結(jié)束于步驟s410。
圖5是顯示根據(jù)本發(fā)明一實(shí)施例所述的第一次語(yǔ)法分析的流程圖。在步驟s500中,語(yǔ)法分析模塊130是否讀取原始碼120。如果語(yǔ)法分析模塊130沒(méi)有讀取原始碼120,則執(zhí)行步驟s514結(jié)束流程。如果語(yǔ)法分析模塊130讀取原始碼120,則執(zhí)行步驟s502,語(yǔ)法分析模塊130依據(jù)原始碼120判斷是否有api函式等于普通函式。詳細(xì)而言,如果原始碼120中包括”=”符號(hào),則可判斷api函式對(duì)應(yīng)普通函式,然后進(jìn)行步驟s504。在步驟s504中,數(shù)據(jù)庫(kù)模塊140從普通函式數(shù)據(jù)庫(kù)150a以及api函式數(shù)據(jù)庫(kù)150b中取得具有對(duì)應(yīng)關(guān)系的普通函式以及api函式。然后執(zhí)行步驟s506,數(shù)據(jù)庫(kù)模塊140在普通函式數(shù)據(jù)庫(kù)150a中標(biāo)記該普通函式對(duì)應(yīng)該api函式,并且將普通函式與api函式的對(duì)應(yīng)關(guān)系記錄于對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c,然后再執(zhí)行步驟s500。
另一方面,在步驟s502中,如果語(yǔ)法分析模塊130依據(jù)原始碼120判斷api函式不等于普通函式,亦即沒(méi)有api函式對(duì)應(yīng)普通函式,則執(zhí)行步驟s508。在步驟s508,語(yǔ)法分析模塊130依據(jù)原始碼120判斷是否有api函式被定義為普通函式。詳細(xì)而言,如果原始碼120中包括”#define”符號(hào),則可判斷api函式對(duì)應(yīng)普通函式,然后進(jìn)行步驟s510。如果語(yǔ)法分析模塊130依據(jù)原始碼120判斷api函式?jīng)]有被定義為普通函式,則執(zhí)行步驟s500。在步驟s510中,數(shù)據(jù)庫(kù)模塊140從普通函式數(shù)據(jù)庫(kù)150a以及api函式數(shù)據(jù)庫(kù)150b中取得具有對(duì)應(yīng)關(guān)系的普通函式以及api函式。然后執(zhí)行步驟s512,數(shù)據(jù)庫(kù)模塊140在普通函式數(shù)據(jù)庫(kù)150a中標(biāo)記該普通函式對(duì)應(yīng)該api函式,并且將普通函式與api函式的對(duì)應(yīng)關(guān)系記錄于對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c,然后再執(zhí)行步驟s500。藉由語(yǔ)法分析模塊130所執(zhí)行的第一次語(yǔ)法分析,能夠找出api函式與普通函式的對(duì)應(yīng)關(guān)系,并且建立對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c以圖表化與可視化的方式加以呈現(xiàn),加速研發(fā)速度并且提升效能。
圖6是顯示根據(jù)本發(fā)明一實(shí)施例所述的第二次語(yǔ)法分析的流程圖。在步驟s600中,語(yǔ)法分析模塊130是否讀取原始碼120。如果語(yǔ)法分析模塊130沒(méi)有讀取原始碼120,則執(zhí)行步驟s614結(jié)束流程。如果語(yǔ)法分析模塊130讀取原始碼120,則執(zhí)行步驟s602,語(yǔ)法分析模塊130依據(jù)原始碼120自普通函式數(shù)據(jù)庫(kù)150a中取得關(guān)于該原始碼120的普通函式。然后,執(zhí)行步驟s604,語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式是否為普通函式。
在一實(shí)施例中,如果語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式為普通函式,則執(zhí)行步驟s606,數(shù)據(jù)庫(kù)模塊140將該普通函式與被該普通函數(shù)調(diào)用的普通函式之間的呼叫關(guān)系記錄于呼叫關(guān)系數(shù)據(jù)庫(kù)150d。接著,執(zhí)行步驟s608。如果語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式不是普通函式,則執(zhí)行步驟s608。在步驟s608中,語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式是否為api函式。如果語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式為api函式,則執(zhí)行步驟s610。在步驟s610中,語(yǔ)法分析模塊130藉由對(duì)應(yīng)關(guān)系數(shù)據(jù)庫(kù)150c取得被呼叫的api函式所對(duì)應(yīng)的普通函式,并且數(shù)據(jù)庫(kù)模塊140將普通函式與該api函式所對(duì)應(yīng)的普通函式之間的呼叫關(guān)系記錄于呼叫關(guān)系數(shù)據(jù)庫(kù)150d。
然后,執(zhí)行步驟s612,數(shù)據(jù)庫(kù)模塊140更新普通函式數(shù)據(jù)庫(kù)150a所記錄的普通函式所呼叫的函式數(shù)量及/或呼叫普通函式的函式數(shù)量。另一方面,在步驟s608中,如果語(yǔ)法分析模塊130判斷該原始碼120的普通函式所呼叫的函式不是api函式,則執(zhí)行步驟s612。本發(fā)明所提供的函式管理方法藉由語(yǔ)法分析模塊130所執(zhí)行的第二次語(yǔ)法分析,能夠找出普通函式之間的上下呼叫關(guān)系。然后,數(shù)據(jù)庫(kù)模塊140建立呼叫關(guān)系數(shù)據(jù)庫(kù)150d以圖表化與可視化的方式加以呈現(xiàn),加速內(nèi)存裝置10的研發(fā)速度并且提升效能。
在本說(shuō)明書(shū)以及申請(qǐng)專利范圍中的序數(shù),例如“第一”、“第二”、“第三”等等,彼此之間并沒(méi)有順序上的先后關(guān)系,其僅用于標(biāo)示區(qū)分兩個(gè)具有相同名字的不同組件。本發(fā)明說(shuō)明書(shū)中“耦接”一詞是泛指各種直接或間接的電性連接方式。本發(fā)明雖以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明的范圍,任何熟悉本技術(shù)領(lǐng)域者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)由權(quán)利要求書(shū)界定為準(zhǔn)。