[發明專利]一種內存泄露的快速定位方法在審
| 申請號: | 201410089673.9 | 申請日: | 2014-03-12 |
| 公開(公告)號: | CN103914376A | 公開(公告)日: | 2014-07-09 |
| 發明(設計)人: | 趙眾 | 申請(專利權)人: | 漢柏科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京天奇智新知識產權代理有限公司 11340 | 代理人: | 謝磊 |
| 地址: | 300384 天津市西青*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 泄露 快速 定位 方法 | ||
技術領域
本發明涉及內存管理領域,尤其涉及一種內存泄露的快速定位方法。
背景技術
當今的IT行業中,代碼開發中最頻繁的操作之一就是內存的申請與釋放。如果內存申請后,沒有被及時釋放,且這種情況頻繁出現,就會導致剩余內存不斷減少,可用內存逐漸降低的情況,這種情況通常被稱之為內存泄露現象。如果出現內存泄露,就需要開發人員花費更多的時間去查看代碼,查找沒有釋放的地方,因此內存泄露問題一直是困擾開發者定位問題的一大難題,往往需要開發者花費大量的時間去查找內存泄露的地方,既費時又費力?,F有的一種定位內存泄露的方法為:首先啟動程序;然后分配新內存時,根據內存分配的地址,在設定的路徑內生成內存跟蹤文件,內存跟蹤文件的內容或文件名與分配的內存地址、分配內存的文件或分配內存的源代碼的行號相關;釋放內存時,根據傳進的內存地址,刪除相應的內存跟蹤文件。當程序運行完畢之后,根據設定的路徑內所存在的內存跟蹤文件判斷內存泄露的情況,即,若設定的路徑內存在未刪除的內存跟蹤文件,則說明有分配的內存未被釋放。該技術存在的技術問題:需要啟動新的程序,對現有程序的運行環境存在影響,可能導致出現未知的問題,并且還需要替換分配內存的接口,創建跟蹤文件,需要根據跟蹤文件來確認是否存在內存泄露,如果內存申請的地方較多,跟蹤文件的信息量很大,不便于定位。
發明內容
本發明鑒于上述情況而作出,其目的是提供一種內存泄露的快速定位方法,能夠清晰地根據函數申請內存的次數,由多到少或由少到多顯示內存泄露的具體函數和代碼行,便于快速定位。
本發明提供一種內存泄露的快速定位方法,包括步驟:
步驟S1,申請內存時,在內存中申請預定大小的擴展區,用于保存內存頭信息,所述內存頭信息包括:用于確認內存申請和釋放情況的頭部標識信息,調用申請內存的函數信息,調用釋放內存的函數信息。
步驟S2,將所述頭部標識信息初始化為第一標識,保存調用申請內存的函數信息。
步驟S3,將所述內存加入內存鏈表中。
步驟S4,當釋放申請的內存時,將所述頭部標識信息設置為第三標識,保存調用釋放內存的函數信息。
步驟S5,將釋放的內存從內存鏈表中刪除。
步驟S6,需進行內存泄露定位時,遍歷內存鏈表,根據所述函數信息統計相同函數申請內存的次數,其中申請內存的次數不斷增長的函數為存在內存泄露的函數。
進一步地,所述頭部標識信息還用于確認申請內存的起始位置。
進一步地,所述擴展區還用于保存內存尾信息,所述內存尾信息包括尾部標識信息,用于確認申請內存的結束位置。
優選地,所述步驟S6還包括:根據所述申請內存的次數,從大到小打印函數信息中的函數名稱及對應的函數申請的次數。
優選地,所述步驟S6還包括:根據所述申請內存的次數,從小到大打印函數信息中的函數名稱及對應的函數申請的次數。
進一步地,根據所述申請內存的次數,從大到小打印函數信息中的函數名稱及對應的函數申請的次數,包括:根據所述申請內存的次數和輸入的參數n,從大到小打印排在前n位的函數名稱及對應的函數申請的次數。
進一步地,根據所述申請內存的次數,從小到大打印函數信息中的函數名稱及對應的函數申請的次數,包括:根據所述申請內存的次數和輸入的參數n,從小到大打印排在前n位的函數名稱及對應的函數申請的次數。
進一步地,所述步驟S2還包括:將所述尾部標識信息初始化為第二標識;所述步驟S4還包括:將所述尾部標識信息設置為第四標識。
其中,所述函數信息包括函數地址和對應的代碼行數,所述函數地址能夠用以翻譯成函數名。
其中,所述頭部標識信息和尾部標識信息分別為內存頭魔數字和內存尾魔數字,所述第一標識、第二標識、第三標識和第四標識分別為不同的特定數字。
根據本發明,提供了一種內存泄露的快速定位方法,能夠清晰地根據函數申請內存的次數,由多到少或由少到多顯示內存泄露的具體函數和代碼行,便于快速定位。
附圖說明
圖1是本發明的內存泄露的快速定位方法的流程示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明了,下面結合具體實施方式并參照附圖,對本發明進一步詳細說明。應該理解,這些描述只是示例性的,而并非要限制本發明的范圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本發明的概念。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于漢柏科技有限公司,未經漢柏科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410089673.9/2.html,轉載請聲明來源鉆瓜專利網。





