調(diào)試靜態(tài)庫函數(shù)的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種調(diào)試靜態(tài)庫函數(shù)的方法及系統(tǒng),涉及庫函數(shù)調(diào)試【技術(shù)領(lǐng)域】,所述方法包括:S1:獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B;S2:在待執(zhí)行程序的源代碼中的新建一個函數(shù)名為A的調(diào)試函數(shù);S3:在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。本發(fā)明只需簡單的改變庫函數(shù)的函數(shù)名,就可實現(xiàn)對庫函數(shù)的調(diào)試,無需修改庫函數(shù)的代碼,也需要不重新編譯庫函數(shù),對庫函數(shù)而言,功能沒有任何變化,僅僅是對庫函數(shù)的函數(shù)名進(jìn)行更換,并且簡單、易修改。
【專利說明】調(diào)試靜態(tài)庫函數(shù)的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及庫函數(shù)調(diào)試【技術(shù)領(lǐng)域】,特別涉及一種調(diào)試靜態(tài)庫函數(shù)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]靜態(tài)庫函數(shù)一般是指編譯器提供的可在C語言源程序中調(diào)用的函數(shù)。可分為兩類,一類是C語言標(biāo)準(zhǔn)規(guī)定的庫函數(shù),一類是編譯器特定的庫函數(shù)。由于版權(quán)原因,庫函數(shù)的源代碼一般是不可見的,但在頭文件中可以看到它對外的接口。C語言的語句十分簡單,如果要使用C語言的語句直接計算Sin或COS函數(shù),就需要編寫頗為復(fù)雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數(shù)的語句。又如為了顯示一段文字,在C語言中也找不到顯示語句,只能使用庫函數(shù)printf。
[0003]C語言的庫函數(shù)并不是C語言本身的一部分,它是由編譯程序根據(jù)一般用戶的需要編制并提供用戶使用的一組程序。C的庫函數(shù)極大地方便了用戶,同時也補(bǔ)充了 C語言本身的不足。事實上,在編寫C語言程序時,應(yīng)當(dāng)盡可能多地使用庫函數(shù),這樣既可以提高程序的運(yùn)行效率,又可以提高編程的質(zhì)量,但是由于開發(fā)者使用不當(dāng),往往會出現(xiàn)很多錯誤,很多錯誤最終卻體現(xiàn)在庫函數(shù)中,因此需要一種方法可以添加調(diào)試代碼,用來找到錯誤的原因。
[0004]現(xiàn)有技術(shù)中為了對庫函數(shù)進(jìn)行調(diào)試,通常是修改庫的源代碼,增加調(diào)試信息,并重新編譯,整個工作的工作難度較大,同時很多靜態(tài)庫是供應(yīng)商直接提供的,使用者無法獲取具體的源碼,無法添加調(diào)試信息,導(dǎo)致無法調(diào)試。
【發(fā)明內(nèi)容】
[0005]為了能夠在不修改庫函數(shù)的源代碼的情況下,對庫函數(shù)進(jìn)行調(diào)試。
[0006]本發(fā)明提供了一種調(diào)試靜態(tài)庫函數(shù)的方法,所述方法包括以下步驟:
[0007]S1:獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ;
[0008]S2:在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù);
[0009]S3:在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
[0010]其中,步驟SI之前還包括:
[0011]SO:接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
[0012]本發(fā)明還公開了一種調(diào)試靜態(tài)庫函數(shù)的系統(tǒng),所述系統(tǒng)包括:
[0013]獲取修改模塊,用于獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ;
[0014]函數(shù)新建模塊,用于在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù);
[0015]函數(shù)調(diào)用模塊,用于在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
[0016]其中,所述系統(tǒng)還包括:
[0017]函數(shù)名接收模塊,用于接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
[0018]本發(fā)明只需簡單的改變庫函數(shù)的函數(shù)名,就可以簡單的添加調(diào)試程序,并調(diào)用新名字的庫函數(shù),在不修改庫函數(shù)的源代碼的情況下,實現(xiàn)對庫函數(shù)的調(diào)試,無需修改庫函數(shù)的代碼,也需要不重新編譯庫函數(shù),對庫函數(shù)而言,功能沒有任何變化,僅僅是對庫函數(shù)的函數(shù)名進(jìn)行更換,并且簡單、易修改。
【專利附圖】
【附圖說明】
[0019]圖1是本發(fā)明一種實施方式的調(diào)試靜態(tài)庫函數(shù)的方法流程圖;
[0020]圖2是本發(fā)明一種實施方式的調(diào)試靜態(tài)庫函數(shù)的系統(tǒng)結(jié)構(gòu)框圖。
【具體實施方式】
[0021]下面結(jié)合附圖和實施例,對本發(fā)明的【具體實施方式】作進(jìn)一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0022]圖1是本發(fā)明一種實施方式的調(diào)試靜態(tài)庫函數(shù)的方法流程圖;參照圖1,所述方法包括以下步驟:
[0023]S1:獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ;
[0024]S2:在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù);
[0025]S3:在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
[0026]為實現(xiàn)函數(shù)名的自動搜索,以提高自動化能力,優(yōu)選地,步驟SI之前還包括:
[0027]SO:接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
[0028]實施例
[0029]下面以一個具體的實施例來說明本發(fā)明的方法,但不限定本發(fā)明的保護(hù)范圍。本實施例的方法包括以下步驟:
[0030]步驟101:接收用戶輸入的函數(shù)名malloc,并根據(jù)接收到的函數(shù)名malloc在所述靜態(tài)庫中進(jìn)行搜索;
[0031]步驟102:獲取待調(diào)試庫函數(shù)(即為靜態(tài)庫中函數(shù)名為malloc的函數(shù)),并將所述待調(diào)試庫函數(shù)的函數(shù)名malloc修改為函數(shù)名Malloc (此處以Malloc為例說明,還可為其他名稱),此時,當(dāng)前正在執(zhí)行的程序中調(diào)用malloc的位置,此時實際上沒有具體函數(shù)與之對應(yīng);
[0032]步驟103:在待執(zhí)行程序的源代碼中新建一個函數(shù)名為malloc的調(diào)試函數(shù);
[0033]步驟104:在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時(當(dāng)前正在執(zhí)行的程序運(yùn)行至調(diào)用malloc時),先通過所述函數(shù)名malloc調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名Malloc調(diào)用所述待調(diào)試庫函數(shù)(為了不妨礙當(dāng)前正在執(zhí)行的程序的本身功能,故而會通過函數(shù)名Malloc調(diào)用所述待調(diào)試庫函數(shù)),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
[0034]本發(fā)明還公開了一種調(diào)試靜態(tài)庫函數(shù)的系統(tǒng),參照圖2,所述系統(tǒng)包括:
[0035]獲取修改模塊,用于獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ;
[0036]函數(shù)新建模塊,用于在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù);
[0037]函數(shù)調(diào)用模塊,用于在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
[0038]優(yōu)選地,所述系統(tǒng)還包括:
[0039]函數(shù)名接收模塊,用于接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
[0040]以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
【權(quán)利要求】
1.一種調(diào)試靜態(tài)庫函數(shù)的方法,其特征在于,所述方法包括以下步驟: 51:獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ; 52:在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù); 53:在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
2.如權(quán)利要求1所述的方法,其特征在于,步驟SI之前還包括: SO:接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
3.—種調(diào)試靜態(tài)庫函數(shù)的系統(tǒng),其特征在于,所述系統(tǒng)包括: 獲取修改模塊,用于獲取待調(diào)試庫函數(shù),并將所述待調(diào)試庫函數(shù)的函數(shù)名A修改為函數(shù)名B ; 函數(shù)新建模塊,用于在待執(zhí)行程序的源代碼中新建一個函數(shù)名為A的調(diào)試函數(shù);函數(shù)調(diào)用模塊,用于在所述待執(zhí)行程序需要調(diào)用所述待調(diào)試庫函數(shù)時,先通過所述函數(shù)名A調(diào)用所述調(diào)試函數(shù),再通過所述函數(shù)名B調(diào)用所述待調(diào)試庫函數(shù),以實現(xiàn)所述待調(diào)試庫函數(shù)的調(diào)試。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 函數(shù)名接收模塊,用于接收用戶輸入的函數(shù)名A,并根據(jù)接收到的函數(shù)名A在所述靜態(tài)庫中進(jìn)行搜索。
【文檔編號】G06F11/36GK104050081SQ201410252210
【公開日】2014年9月17日 申請日期:2014年6月9日 優(yōu)先權(quán)日:2014年6月9日
【發(fā)明者】李鵬 申請人:漢柏科技有限公司