本發(fā)明涉及計算機技術(shù)應(yīng)用領(lǐng)域,尤其涉及一種診斷內(nèi)存泄漏的方法及設(shè)備。
背景技術(shù):
在一些編程語言以及相關(guān)的運行時間中,通常會由應(yīng)用程序本身提供一種內(nèi)存管理功能。對于那不再被程序需要的內(nèi)存是由程序設(shè)計員來釋放。如果程序不能合理釋放不同的內(nèi)存將導(dǎo)致內(nèi)存資源的浪費,即這些內(nèi)存將不能被任何其他的程序使用。導(dǎo)致這種內(nèi)存浪費的程序錯誤通常稱之為“內(nèi)存泄露”。內(nèi)存泄露會導(dǎo)致計算機的性能降低,嚴重的時候會導(dǎo)致應(yīng)用程序的運行占用所有的內(nèi)存并導(dǎo)致計算機崩潰。因此,內(nèi)存泄露由于其對計算機的性能造成巨大影響而消弱了計算機的可獲得性和安全性。
現(xiàn)有的內(nèi)存泄露的診斷方法對工業(yè)應(yīng)用的效果有限,因為這些現(xiàn)有的方法通常將基本類型識別為嫌疑類型。例如,一種現(xiàn)有技術(shù)建議使用引用來查找負責內(nèi)存泄露的有用對象。但是引用不能包含執(zhí)行語境信息。被引用的現(xiàn)有對象因為是基本的常見使用類型,可能同時被多個引用者持有。在這種情況下,人們依然不了解這些引用為什么會產(chǎn)生以及在何種條件下泄露問題會被再現(xiàn),診斷以及修復(fù)是否正確難以進行判別。
在嵌入式系統(tǒng)開發(fā)過程中,內(nèi)存管理給了開發(fā)者很大的自由度,也給開發(fā)者管理內(nèi)存帶來了很大的負擔,內(nèi)存泄漏的影響是致命的,而且內(nèi)存泄漏的問題查找起來很麻煩。嵌入式系統(tǒng)中,大多數(shù)方案采用動態(tài)內(nèi)存管理方式,當應(yīng)用程序需要使用內(nèi)存資源時進行申請,當使用完畢后釋放內(nèi)存資源。而在這個過程中經(jīng)常出現(xiàn)程序漏洞或者人員疏忽,導(dǎo)致內(nèi)存無法釋放,出現(xiàn)內(nèi)存泄漏問題,隨著系統(tǒng)長時間運行,內(nèi)存越用越少,最后無內(nèi)存可用,程序最終會因為沒有足夠內(nèi)存空間而無法正常運行,導(dǎo)致系統(tǒng)奔潰死機,后果非常嚴重。此外,在嵌入式系統(tǒng)開發(fā)過程中,直接調(diào)用系統(tǒng)函數(shù),一旦發(fā)生內(nèi)存泄漏,也很難定位問題。
綜上,一個系統(tǒng)的泄露診斷起來是非常復(fù)雜的,尤其是對于那些每次連續(xù)以及較小容量地發(fā)生的緩慢泄露而言更是如此。因此,如何有效地準確檢測內(nèi)存泄漏并合理釋放內(nèi)存是一個亟待解決的棘手難題。
技術(shù)實現(xiàn)要素:
針對上述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的是提供一種便于定位內(nèi)存泄漏問題的診斷內(nèi)存泄漏的方法及設(shè)備,通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,方便開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的。
本發(fā)明實施例提供的一種診斷內(nèi)存泄漏的方法,該方法包括:
封裝分配/釋放內(nèi)存的系統(tǒng)函數(shù);
調(diào)用封裝后的分配/釋放內(nèi)存的函數(shù)。
進一步地,上述方法中,所述調(diào)用封裝后的分配內(nèi)存的函數(shù),包括:
首先對分配內(nèi)存進行調(diào)用;
如果分配內(nèi)存成功調(diào)用,將對應(yīng)的分配內(nèi)存參數(shù)寫入指定的分配內(nèi)存配置文件中;
如果分配內(nèi)存不能成功調(diào)用,則不寫入分配內(nèi)存配置文件中。
進一步地,上述方法中,所述分配內(nèi)存參數(shù)包括:
分配內(nèi)存進程號、分配內(nèi)存模塊號、分配內(nèi)存文件名、分配內(nèi)存文件行號以及分配的內(nèi)存空間大小。
進一步地,上述方法中,所述調(diào)用封裝后的釋放內(nèi)存的函數(shù),包括:
首先對釋放內(nèi)存進行調(diào)用;
如果釋放內(nèi)存成功調(diào)用,將對應(yīng)的釋放內(nèi)存參數(shù)寫入指定的釋放內(nèi)存配置文件中;
如果釋放內(nèi)存不能成功調(diào)用,則不寫入釋放內(nèi)存配置文件中。
進一步地,上述方法中,還包括:
比較分配內(nèi)存和釋放內(nèi)存,當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)項。
進一步地,上述方法中,所述比較分配內(nèi)存和釋放內(nèi)存,具體包括:
比較分配內(nèi)存和釋放內(nèi)存的參數(shù),當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同參數(shù)項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)參數(shù)項。
本發(fā)明實施例提供的一種診斷內(nèi)存泄漏的設(shè)備,該設(shè)備包括:
封裝模塊,用于封裝分配/釋放內(nèi)存的系統(tǒng)函數(shù);
調(diào)用模塊,用于調(diào)用封裝后的分配/釋放內(nèi)存的函數(shù)。
進一步地,上述設(shè)備中,所述調(diào)用模塊,具體用于:
首先對分配內(nèi)存進行調(diào)用;
如果分配內(nèi)存成功調(diào)用,將對應(yīng)的分配內(nèi)存參數(shù)寫入指定的分配內(nèi)存配置文件中;
如果分配內(nèi)存不能成功調(diào)用,則不寫入分配內(nèi)存配置文件中。
進一步地,上述設(shè)備中,所述分配內(nèi)存參數(shù)包括:
分配內(nèi)存進程號、分配內(nèi)存模塊號、分配內(nèi)存文件名、分配內(nèi)存文件行號以及分配的內(nèi)存空間大小。
進一步地,上述設(shè)備中,所述調(diào)用模塊,還用于:
首先對釋放內(nèi)存進行調(diào)用;
如果釋放內(nèi)存成功調(diào)用,將對應(yīng)的釋放內(nèi)存參數(shù)寫入指定的釋放內(nèi)存配置文件中;
如果釋放內(nèi)存不能成功調(diào)用,則不寫入釋放內(nèi)存配置文件中。
進一步地,上述設(shè)備中,還包括:
比較模塊,用于比較分配內(nèi)存和釋放內(nèi)存,當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)項。
進一步地,上述設(shè)備中,所述比較模塊,具體用于:
比較分配內(nèi)存和釋放內(nèi)存的參數(shù),當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同參數(shù)項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)參數(shù)項。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例診斷內(nèi)存泄漏的方法,包括:封裝分配/釋放內(nèi)存的系統(tǒng)函數(shù);調(diào)用封裝后的分配/釋放內(nèi)存的函數(shù)。本發(fā)明實施例對系統(tǒng)函數(shù)Malloc/Free進行封裝,開發(fā)者在系統(tǒng)內(nèi)不再直接調(diào)用Malloc/Free,而是調(diào)用封裝的函數(shù)。本發(fā)明實施例通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種診斷內(nèi)存泄漏的方法流程圖;
圖2為本發(fā)明提供的一種調(diào)用封裝后的分配內(nèi)存的函數(shù)流程圖;
圖3為本發(fā)明提供的一種調(diào)用封裝后的釋放內(nèi)存的函數(shù)流程圖;
圖4為本發(fā)明提供的一種診斷內(nèi)存泄漏的設(shè)備結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
標準C語言提供的Malloc是動態(tài)分配內(nèi)存的函數(shù),F(xiàn)ree是和Malloc配對使用的釋放Malloc分配的內(nèi)存函數(shù),一般的實時操作系統(tǒng)中的內(nèi)存管理函數(shù)都可以在某種程度上實現(xiàn)這種內(nèi)存分配及釋放的功能。一般來說,Malloc函數(shù)是分配給定的字節(jié)數(shù),并返回一個指向它們的指針。如果沒有足夠的可用內(nèi)存,那么它返回一個空指針;Free函數(shù)是指獲得指向由Malloc分配的內(nèi)存片段的指針,并將其釋放,以便后續(xù)的程序或操作系統(tǒng)使用。
在嵌入系統(tǒng)開發(fā)過程中,如果開發(fā)者直接使用Malloc/Free系統(tǒng)提供的函數(shù),一旦發(fā)生內(nèi)存泄漏,會很難下手查找問題點。本發(fā)明就是為診斷內(nèi)存泄漏問題提供解決方案。優(yōu)選的,本發(fā)明實施中通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
下面結(jié)合說明書附圖對本發(fā)明實施例作進一步詳細描述。
如圖1所示,本發(fā)明實施例公開了一種診斷內(nèi)存泄漏的方法,該方法包括:
步驟S101,封裝分配/釋放內(nèi)存的系統(tǒng)函數(shù);
步驟S102,調(diào)用封裝后的分配/釋放內(nèi)存的函數(shù)。
進一步地,上述方法中,所述分配/釋放內(nèi)存的函數(shù)是Malloc/Free函數(shù)。
具體的,在上述步驟S101中,封裝的分配內(nèi)存Malloc的函數(shù)如下:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, int size);
其中:Pid是進程號,Module 是模塊號,F(xiàn)ile為文件名,Line 為文件行號,Size 為分配的內(nèi)存空間大小。
具體的,在上述步驟S101中,封裝的釋放內(nèi)存Free的函數(shù)如下:
Void Phicomm_xx_free(int pid,int module,void* ptr);
其中:Pid是進程號,Module是 模塊號,Ptr為待釋放的指針地址。
本發(fā)明實施例通過對系統(tǒng)函數(shù)Malloc/Free進行封裝,開發(fā)者在系統(tǒng)內(nèi)不再直接調(diào)用Malloc/Free,而是調(diào)用封裝的函數(shù)。本發(fā)明實施例通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
進一步地,上述方法中,所述調(diào)用封裝后的分配內(nèi)存的函數(shù),如圖2所示,包括:
步驟S201,首先對分配內(nèi)存進行調(diào)用;
步驟S202,如果分配內(nèi)存成功調(diào)用,將對應(yīng)的分配內(nèi)存參數(shù)寫入指定的分配內(nèi)存配置文件中;如果分配內(nèi)存不能成功調(diào)用,則不寫入分配內(nèi)存配置文件中。
實施中,調(diào)用封裝后的分配內(nèi)存的函數(shù):
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, int size);
具體包括:
首先對Malloc 進行調(diào)用。
如果Malloc成功調(diào)用,將對應(yīng)的參數(shù)寫入指定的配置文件malloc.conf。
如果Malloc不能成功調(diào)用,則不寫入配置文件malloc.conf。
進一步地,上述方法中,所述分配內(nèi)存參數(shù)包括:
分配內(nèi)存進程號pid、分配內(nèi)存模塊號module、分配內(nèi)存文件名file、分配內(nèi)存文件行號line以及分配的內(nèi)存空間大小size。
進一步地,上述方法中,所述調(diào)用封裝后的釋放內(nèi)存的函數(shù),如圖3所示,包括:
步驟S301,首先對釋放內(nèi)存進行調(diào)用;
步驟S302,如果釋放內(nèi)存成功調(diào)用,將對應(yīng)的釋放內(nèi)存參數(shù)寫入指定的釋放內(nèi)存配置文件中;如果釋放內(nèi)存不能成功調(diào)用,則不寫入釋放內(nèi)存配置文件中。
實施中,調(diào)用封裝后的釋放內(nèi)存的函數(shù):
Void Phicomm_xx_free(int pid,int module,void* ptr);
具體包括:
首先對Free進行調(diào)用。
如果Free成功調(diào)用,將對應(yīng)的參數(shù)寫入指定的配置文件free.conf。
如果Free不能成功調(diào)用,則不寫入配置文件free.conf。
進一步地,上述方法中,所述釋放內(nèi)存參數(shù)包括:
釋放內(nèi)存進程號pid、釋放內(nèi)存模塊號module以及待釋放的指針地址ptr。
在嵌入系統(tǒng)開發(fā)過程中,如果開發(fā)者直接使用Malloc/Free系統(tǒng)提供的函數(shù),一旦發(fā)生內(nèi)存泄漏,會很難下手查找問題點。本發(fā)明實施例,通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
進一步地,上述方法中,還包括:
比較分配內(nèi)存和釋放內(nèi)存,當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)項。
本發(fā)明實施例在系統(tǒng)中開啟一個專門處理對比兩個文件的進程,這個進程的優(yōu)先級最低,在系統(tǒng)空閑的時候比較分配內(nèi)存和釋放內(nèi)存的配置文件,即比較malloc.conf和free.conf 。當比較發(fā)現(xiàn)兩文件中有相同項時,則將兩文件中的對應(yīng)項刪除。
進一步地,上述方法中,所述比較分配內(nèi)存和釋放內(nèi)存,具體包括:
比較分配內(nèi)存和釋放內(nèi)存的參數(shù),當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同參數(shù)項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)參數(shù)項。
具體的,本發(fā)明實施例,比較malloc.conf和free.conf時,比較的參數(shù)為進程號pid,模塊號module,指針地址ptr。當比較發(fā)現(xiàn)兩文件中有相同項時,則將兩文件中的對應(yīng)項刪除。如下所示:
Void phicomm_compare_buffer(void)
{
If((m_pid == f_pid)&&(m_module==f_module)&&(m_ptr==f_ptr))
刪除malloc.conf,free.conf 文件中對應(yīng)項。
Else
不處理。
}
本發(fā)明實施例,當開發(fā)者需要診斷系統(tǒng)時,只需要查看malloc.conf文件,比較malloc.conf文件中的各項是不是當前系統(tǒng)運行所需要的分配空間。本發(fā)明實施例能夠很清晰的幫助到開發(fā)者診斷內(nèi)存泄漏問題。
綜上,本發(fā)明實施例通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,能夠在嵌入式系統(tǒng)便捷的診斷內(nèi)存泄漏問題,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
基于相同的技術(shù)構(gòu)思,本發(fā)明實施例還提供一種診斷內(nèi)存泄漏的設(shè)備,該設(shè)備可執(zhí)行上述方法實施例,由于該設(shè)備解決問題的原理與前述一種診斷內(nèi)存泄漏的方法相似,因此該設(shè)備的實施可以參見方法的實施。
如圖4所示,本發(fā)明實施例提供的一種診斷內(nèi)存泄漏的設(shè)備,該設(shè)備包括:
封裝模塊401,用于封裝分配/釋放內(nèi)存的系統(tǒng)函數(shù);
調(diào)用模塊402,用于調(diào)用封裝后的分配/釋放內(nèi)存的函數(shù)。
進一步地,上述設(shè)備中,所述分配/釋放內(nèi)存的函數(shù)是Malloc/Free函數(shù)。
具體的,上述封裝模塊401,封裝的分配內(nèi)存Malloc的函數(shù)如下:
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, int size);
其中:Pid是進程號,Module 是模塊號,F(xiàn)ile為文件名,Line 為文件行號,Size 為分配的內(nèi)存空間大小。
具體的,上述封裝模塊401,封裝的釋放內(nèi)存Free的函數(shù)如下:
Void Phicomm_xx_free(int pid,int module,void* ptr);
其中:Pid是進程號,Module是 模塊號,Ptr為待釋放的指針地址。
本發(fā)明實施例通過對系統(tǒng)函數(shù)Malloc/Free進行封裝,開發(fā)者在系統(tǒng)內(nèi)不再直接調(diào)用Malloc/Free,而是調(diào)用封裝的函數(shù)。本發(fā)明實施例通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
進一步地,上述設(shè)備中,所述調(diào)用模塊402,具體用于:
首先對分配內(nèi)存進行調(diào)用;
如果分配內(nèi)存成功調(diào)用,將對應(yīng)的分配內(nèi)存參數(shù)寫入指定的分配內(nèi)存配置文件中;
如果分配內(nèi)存不能成功調(diào)用,則不寫入分配內(nèi)存配置文件中。
進一步地,上述設(shè)備中,所述分配內(nèi)存參數(shù)包括:
分配內(nèi)存進程號、分配內(nèi)存模塊號、分配內(nèi)存文件名、分配內(nèi)存文件行號以及分配的內(nèi)存空間大小。
實施中,調(diào)用模塊402,調(diào)用封裝后的分配內(nèi)存的函數(shù):
Void* Phicomm_xx_malloc(int pid,int module,char* file,int line, int size);
具體包括:
首先對Malloc 進行調(diào)用。
如果Malloc成功調(diào)用,將對應(yīng)的參數(shù)寫入指定的配置文件malloc.conf。
如果Malloc不能成功調(diào)用,則不寫入配置文件malloc.conf。
進一步地,上述方法中,所述分配內(nèi)存參數(shù)包括:
分配內(nèi)存進程號pid、分配內(nèi)存模塊號module、分配內(nèi)存文件名file、分配內(nèi)存文件行號line以及分配的內(nèi)存空間大小size。
進一步地,上述設(shè)備中,所述調(diào)用模塊402,還用于:
首先對釋放內(nèi)存進行調(diào)用;
如果釋放內(nèi)存成功調(diào)用,將對應(yīng)的釋放內(nèi)存參數(shù)寫入指定的釋放內(nèi)存配置文件中;
如果釋放內(nèi)存不能成功調(diào)用,則不寫入釋放內(nèi)存配置文件中。
進一步地,上述設(shè)備中,所述釋放內(nèi)存參數(shù)包括:
釋放內(nèi)存進程號、釋放內(nèi)存模塊號以及待釋放的指針地址。
實施中,調(diào)用模塊402,調(diào)用封裝后的釋放內(nèi)存的函數(shù):
Void Phicomm_xx_free(int pid,int module,void* ptr);
具體包括:
首先對Free進行調(diào)用。
如果Free成功調(diào)用,將對應(yīng)的參數(shù)寫入指定的配置文件free.conf。
如果Free不能成功調(diào)用,則不寫入配置文件free.conf。
進一步地,上述方法中,所述釋放內(nèi)存參數(shù)包括:
釋放內(nèi)存進程號pid、釋放內(nèi)存模塊號module以及待釋放的指針地址ptr。
在嵌入系統(tǒng)開發(fā)過程中,如果開發(fā)者直接使用Malloc/Free系統(tǒng)提供的函數(shù),一旦發(fā)生內(nèi)存泄漏,會很難下手查找問題點。本發(fā)明實施例,通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
進一步地,上述設(shè)備中,還包括:
比較模塊,用于比較分配內(nèi)存和釋放內(nèi)存,當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)項。
本發(fā)明實施例在系統(tǒng)中開啟一個專門處理對比兩個文件的進程,這個進程的優(yōu)先級最低,在系統(tǒng)空閑的時候比較分配內(nèi)存和釋放內(nèi)存的配置文件,即比較malloc.conf和free.conf 。當比較發(fā)現(xiàn)兩文件中有相同項時,則將兩文件中的對應(yīng)項刪除。
進一步地,上述設(shè)備中,所述比較模塊,具體用于:
比較分配內(nèi)存和釋放內(nèi)存的參數(shù),當分配內(nèi)存配置文件中和釋放內(nèi)存配置文件中有相同參數(shù)項時,則刪除分配內(nèi)存和釋放內(nèi)存配置文件中的該對應(yīng)參數(shù)項。
具體的,本發(fā)明實施例,比較malloc.conf和free.conf時,比較的參數(shù)為進程號pid,模塊號module,指針地址ptr。當比較發(fā)現(xiàn)兩文件中有相同項時,則將兩文件中的對應(yīng)項刪除。如下所示:
Voidphicomm_compare_buffer(void)
{
If((m_pid == f_pid)&&(m_module==f_module)&&(m_ptr==f_ptr))
刪除malloc.conf,free.conf 文件中對應(yīng)項。
Else
不處理。
}
本發(fā)明實施例,當開發(fā)者需要診斷系統(tǒng)時,只需要查看malloc.conf文件,比較malloc.conf文件中的各項是不是當前系統(tǒng)運行所需要的分配空間。本發(fā)明實施例能夠很清晰的幫助到開發(fā)者診斷內(nèi)存泄漏問題。
綜上,本發(fā)明實施例通過對系統(tǒng)函數(shù)的封裝,在系統(tǒng)中清晰的記錄內(nèi)存的分配和釋放情況,能夠在嵌入式系統(tǒng)便捷的診斷內(nèi)存泄漏問題,便于開發(fā)者查找系統(tǒng)中未釋放的內(nèi)存是否是當前系統(tǒng)運行所需要的,便于定位內(nèi)存泄漏的問題。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。