[發明專利]內存泄漏點的定位方法、裝置、系統及可讀存儲介質在審
| 申請號: | 201710823200.0 | 申請日: | 2017-09-13 |
| 公開(公告)號: | CN107608885A | 公開(公告)日: | 2018-01-19 |
| 發明(設計)人: | 安祥文 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京集佳知識產權代理有限公司11227 | 代理人: | 羅滿 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 泄漏 定位 方法 裝置 系統 可讀 存儲 介質 | ||
1.一種內存泄漏點的定位方法,其特征在于,包括:
對調用內存分配器分配的內存的地址堆棧信息進行記錄,將記錄的所述內存的地址堆棧信息放入內存占用鏈表中;
通過所述內存占用鏈表獲取所述內存的地址堆棧信息;
將所述地址堆棧信息與進程調用的動態庫的基地址堆棧信息和尾地址堆棧信息進行比較,確定所述地址堆棧信息歸屬的動態庫;
根據所述地址堆棧信息歸屬的動態庫的基地址堆棧信息確定所述地址堆棧信息對應的具體位置信息。
2.如權利要求1所述的內存泄漏點的定位方法,其特征在于,所述對調用內存分配器分配的內存的地址堆棧信息進行記錄,將記錄的所述內存的地址堆棧信息放入內存占用鏈表中包括:
分配一個空閑塊列表;
當調用內存分配器分配內存時,將分配的內存的地址堆棧信息賦值給所述空閑塊列表的節點,將所述節點插入到所述內存占用鏈表中,并將所述節點從所述空閑塊列表中移除;
當所述內存釋放時,將所述內存對應的節點從所述內存占用鏈表中取出,并將所述節點歸還至所述空閑塊列表中。
3.如權利要求2所述的內存泄漏點的定位方法,其特征在于,所述將所述節點插入到所述內存占用鏈表中包括:
將所述節點中存放的所述內存地址堆棧信息按照預定的算法映射成短數據;
將存放有所述短數據的所述節點插入到所述內存占用鏈表中。
4.如權利要求3所述的內存泄漏點的定位方法,其特征在于,所述進程調用的動態庫的基地址堆棧信息和尾地址堆棧信息的調用方法包括:
獲取進程所調用的動態庫的映射關系,得到所述動態庫的基地址堆棧信息和尾地址堆棧信息。
5.如權利要求4所述的內存泄漏點的定位方法,其特征在于,還包括:
對所述內存占用鏈表中的內存的地址堆棧信息記錄信息按照出現次數進行統計;
獲取所述內存占用鏈表中地址堆棧信息記錄信息出現次數大于預設閾值的短數據。
6.如權利要求1至5任一項所述的內存泄漏點的定位方法,其特征在于,所述根據所述地址堆棧信息與其所歸屬的動態庫的基地址堆棧信息確定所述地址堆棧信息對應的具體位置信息包括:
將所述地址堆棧信息減去其所歸屬的動態庫的基地址堆棧信息,得到偏移地址堆棧信息;
根據所述基地址堆棧信息和每行代碼占用的內存大小,與所述偏移地址堆棧信息進行比較,得到所述地址堆棧信息對應的具體位置信息。
7.一種內存泄漏點的定位裝置,其特征在于,包括:
記錄單元,用于對調用內存分配器分配的內存的地址堆棧信息進行記錄,將記錄的所述內存的地址堆棧信息放入內存占用鏈表中;
地址堆棧信息獲取單元,用于通過所述內存占用鏈表獲取所述內存的地址堆棧信息;
比較單元,用于將所述地址堆棧信息與進程調用的動態庫的基地址堆棧信息和尾地址堆棧信息進行比較,確定所述地址堆棧信息歸屬的動態庫;
位置信息確定單元,用于根據所述地址堆棧信息歸屬的動態庫的基地址堆棧信息確定所述地址堆棧信息對應的具體位置信息。
8.一種內存泄漏點的定位系統,其特征在于,包括:
存儲器,用于存儲計算機程序;
處理器,用于執行所述計算機程序時實現如權利要求1至6任一項所述內存泄漏點的定位方法的步驟。
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至6任一項所述內存泄漏點的定位方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710823200.0/1.html,轉載請聲明來源鉆瓜專利網。





