[0046]根據(jù)所述刪除指令,釋放所述第一數(shù)據(jù)項指示的內(nèi)存。
[0047]進一步的,在上述實施例的基礎上,該實施例還可以包括:
[0048]確定程序退出;
[0049]確定所述數(shù)據(jù)結(jié)構(gòu)當前存儲的剩余數(shù)據(jù)項;
[0050]釋放所述剩余數(shù)據(jù)項指示的內(nèi)存。
[0051]在本實施例中,該程序可以理解為包括至少一個文件,其中各文件分別有各自的文件名稱,每個文件可以有多行信息,每行信息對應不同的行號。
[0052]在本實施例中,實現(xiàn)了在程序退出時,釋放所有在執(zhí)行程序時分配的內(nèi)存,從而避免了內(nèi)存泄露。
[0053]需要說明的是,本實施例中的數(shù)據(jù)結(jié)構(gòu)可以為map數(shù)據(jù)結(jié)構(gòu)。
[0054]圖2為本發(fā)明內(nèi)存泄露定位裝置一實施例的結(jié)構(gòu)示意圖。如圖2所示,該內(nèi)存泄漏定位裝置,包括:獲取模塊21和存儲模塊22。其中,
[0055]獲取模塊21,用于獲取文件信息和內(nèi)存地址信息,所述文件信息包括觸發(fā)分配內(nèi)存的文件名稱和文件行號,所述內(nèi)存地址信息包括指向所分配內(nèi)存的指針值信息,所述分配內(nèi)存包括為所述文件行號指示的文件所分配的內(nèi)存,所述文件行號為所述文件名稱指示的文件的行號;
[0056]存儲模塊22,用于將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于在發(fā)生內(nèi)存泄漏時確定內(nèi)存泄漏的位置。
[0057]在本實施例中,獲取文件信息和內(nèi)存地址信息,所述文件信息包括觸發(fā)分配內(nèi)存的文件名稱和文件行號,所述內(nèi)存地址信息包括指向所分配內(nèi)存的指針值信息,所述分配內(nèi)存包括為所述文件行號指示的文件所分配的內(nèi)存,所述文件行號為所述文件名稱指示的文件的行號;將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于在發(fā)生內(nèi)存泄漏時確定內(nèi)存泄漏的位置。實現(xiàn)了對分配內(nèi)存的定位,從而可以在發(fā)生內(nèi)存泄漏時,根據(jù)分配內(nèi)存的定位信息,確定內(nèi)存泄漏的位置。
[0058]在上述實施例的基礎上,所述存儲模塊22,具體用于將所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)的鍵key值;將所述文件信息存儲在所述數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)value值。
[0059]進一步的,在上述實施例的基礎上,所述獲取模塊21,還用于獲取刪除指令,所述刪除指令包括指示刪除第一數(shù)據(jù)項;根據(jù)所述刪除指令,刪除所述數(shù)據(jù)結(jié)構(gòu)中的所述第一數(shù)據(jù)項;根據(jù)所述刪除指令,釋放所述第一數(shù)據(jù)項指示的內(nèi)存。
[0060]圖3為本發(fā)明內(nèi)存泄露定位裝置二實施例的結(jié)構(gòu)示意圖。如圖3所示,該裝置,還可以包括:確定模塊23;
[0061]所述確定模塊23,用于確定程序退出;確定所述數(shù)據(jù)結(jié)構(gòu)當前存儲的剩余數(shù)據(jù)項;釋放所述剩余數(shù)據(jù)項指示的內(nèi)存。
[0062]進一步的,在上述實施例的基礎上,所述數(shù)據(jù)結(jié)構(gòu)為map數(shù)據(jù)結(jié)構(gòu)。
[0063]本實施例中,實現(xiàn)了在程序退出時,釋放所有在執(zhí)行程序時分配的內(nèi)存,從而避免了內(nèi)存泄露。
[0064]本領域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0065]最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種內(nèi)存泄漏定位方法,其特征在于,包括: 獲取文件信息和內(nèi)存地址信息,所述文件信息包括觸發(fā)分配內(nèi)存的文件名稱和文件行號,所述內(nèi)存地址信息包括指向所分配內(nèi)存的指針值信息,所述分配內(nèi)存包括為所述文件行號指示的文件所分配的內(nèi)存,所述文件行號為所述文件名稱指示的文件的行號; 將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于在發(fā)生內(nèi)存泄漏時確定內(nèi)存泄漏的位置。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于確定為文件行號分配的內(nèi)存信息,包括: 將所述內(nèi)存地址信息存儲在所述數(shù)據(jù)結(jié)構(gòu)的鍵key值; 將所述文件信息存儲在所述數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)value值。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 獲取刪除指令,所述刪除指令包括指示刪除第一數(shù)據(jù)項; 根據(jù)所述刪除指令,刪除所述數(shù)據(jù)結(jié)構(gòu)中的所述第一數(shù)據(jù)項; 根據(jù)所述刪除指令,釋放所述第一數(shù)據(jù)項指示的內(nèi)存。4.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,還包括: 確定程序退出; 確定所述數(shù)據(jù)結(jié)構(gòu)當前存儲的剩余數(shù)據(jù)項; 釋放所述剩余數(shù)據(jù)項指示的內(nèi)存。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)為map數(shù)據(jù)結(jié)構(gòu)。6.一種內(nèi)存泄漏定位裝置,其特征在于,包括: 獲取模塊,用于獲取文件信息和內(nèi)存地址信息,所述文件信息包括觸發(fā)分配內(nèi)存的文件名稱和文件行號,所述內(nèi)存地址信息包括指向所分配內(nèi)存的指針值信息,所述分配內(nèi)存包括為所述文件行號指示的文件所分配的內(nèi)存,所述文件行號為所述文件名稱指示的文件的行號; 存儲模塊,用于將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于在發(fā)生內(nèi)存泄漏時確定內(nèi)存泄漏的位置。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述存儲模塊,具體用于將所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)的鍵key值;將所述文件信息存儲在所述數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)value值。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述獲取模塊,還用于獲取刪除指令,所述刪除指令包括指示刪除第一數(shù)據(jù)項;根據(jù)所述刪除指令,刪除所述數(shù)據(jù)結(jié)構(gòu)中的所述第一數(shù)據(jù)項;根據(jù)所述刪除指令,釋放所述第一數(shù)據(jù)項指示的內(nèi)存。9.根據(jù)權(quán)利要求6-8任一項所述的裝置,其特征在于,還包括:確定模塊; 所述確定模塊,用于確定程序退出;確定所述數(shù)據(jù)結(jié)構(gòu)當前存儲的剩余數(shù)據(jù)項;釋放所述剩余數(shù)據(jù)項指示的內(nèi)存。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)為map數(shù)據(jù)結(jié)構(gòu)。
【專利摘要】本發(fā)明提供一種內(nèi)存泄露定位方法及裝置。該方法,包括:獲取文件信息和內(nèi)存地址信息,所述文件信息包括觸發(fā)分配內(nèi)存的文件名稱和文件行號,所述內(nèi)存地址信息包括指向所分配內(nèi)存的指針值信息,所述分配內(nèi)存包括為所述文件行號指示的文件所分配的內(nèi)存,所述文件行號為所述文件名稱指示的文件的行號;將所述文件信息和所述內(nèi)存地址信息存儲在數(shù)據(jù)結(jié)構(gòu)中,用于在發(fā)生內(nèi)存泄漏時確定內(nèi)存泄漏的位置。實現(xiàn)了對分配內(nèi)存的定位,從而可以在發(fā)生內(nèi)存泄漏時,根據(jù)分配內(nèi)存的定位信息,確定內(nèi)存泄漏的位置。
【IPC分類】G06F11/36
【公開號】CN105243011
【申請?zhí)枴緾N201510571947
【發(fā)明人】宗棟瑞, 郭美思
【申請人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司
【公開日】2016年1月13日
【申請日】2015年9月9日