[發(fā)明專利]內(nèi)存泄漏調(diào)試方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201610997589.6 | 申請(qǐng)日: | 2016-11-11 |
| 公開(kāi)(公告)號(hào): | CN108073461B | 公開(kāi)(公告)日: | 2021-01-19 |
| 發(fā)明(設(shè)計(jì))人: | 劉海鵬 | 申請(qǐng)(專利權(quán))人: | 騰訊科技(深圳)有限公司 |
| 主分類號(hào): | G06F11/07 | 分類號(hào): | G06F11/07 |
| 代理公司: | 廣州三環(huán)專利商標(biāo)代理有限公司 44202 | 代理人: | 郝傳鑫;賈允 |
| 地址: | 518000 廣東省深圳*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 泄漏 調(diào)試 方法 裝置 | ||
1.一種內(nèi)存泄漏調(diào)試方法,其特征在于,所述方法包括:
掃描每個(gè)內(nèi)存對(duì)象,獲取每個(gè)內(nèi)存對(duì)象引用的其他內(nèi)存對(duì)象的地址列表;
獲取目標(biāo)對(duì)象集合,所述目標(biāo)對(duì)象集合包括待調(diào)試的目標(biāo)內(nèi)存對(duì)象;所述目標(biāo)對(duì)象集合包括活躍對(duì)象集合和物理泄漏對(duì)象集合,通過(guò)遍歷標(biāo)記算法區(qū)分所述活躍對(duì)象集合和物理泄漏對(duì)象集合;
遍歷所述目標(biāo)對(duì)象集合中的物理泄漏對(duì)象集合,根據(jù)所述地址列表,構(gòu)造所述物理泄漏對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈;根據(jù)所述物理泄漏對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈和調(diào)用棧信息,對(duì)物理泄漏的泄漏點(diǎn)進(jìn)行分析調(diào)試;
遍歷所述目標(biāo)對(duì)象集合中的活躍對(duì)象集合,根據(jù)所述地址列表,構(gòu)造所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈;根據(jù)所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈,得到所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象被引用的實(shí)際數(shù)目,若所述實(shí)際數(shù)目與預(yù)期的目標(biāo)數(shù)目相同,則判定所述目標(biāo)內(nèi)存對(duì)象不是邏輯泄漏對(duì)象,若所述實(shí)際數(shù)目大于所述目標(biāo)數(shù)目,則判定所述目標(biāo)內(nèi)存對(duì)象為邏輯泄漏對(duì)象。
2.根據(jù)權(quán)利要求1所述的內(nèi)存泄漏調(diào)試方法,其特征在于,所述構(gòu)造所述目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈包括:
根據(jù)所述每個(gè)內(nèi)存對(duì)象引用的其他內(nèi)存對(duì)象的地址列表,獲取引用目標(biāo)內(nèi)存對(duì)象的內(nèi)存對(duì)象的地址列表,進(jìn)而將所述目標(biāo)對(duì)象集合轉(zhuǎn)換為目標(biāo)內(nèi)存對(duì)象及相應(yīng)的一級(jí)引用對(duì)象的集合,所述一級(jí)引用對(duì)象為所述引用目標(biāo)內(nèi)存對(duì)象的內(nèi)存對(duì)象。
3.根據(jù)權(quán)利要求2所述的內(nèi)存泄漏調(diào)試方法,其特征在于,所述方法還包括:
根據(jù)所述目標(biāo)內(nèi)存對(duì)象的調(diào)用棧信息,推測(cè)所述所述目標(biāo)內(nèi)存對(duì)象及一級(jí)引用對(duì)象的數(shù)據(jù)類型,進(jìn)而構(gòu)造出帶數(shù)據(jù)類型信息的引用關(guān)系鏈。
4.根據(jù)權(quán)利要求2所述的內(nèi)存泄漏調(diào)試方法,其特征在于,所述方法還包括:
獲取引用所述一級(jí)引用對(duì)象的內(nèi)存對(duì)象的地址列表,進(jìn)而得到目標(biāo)內(nèi)存對(duì)象及相應(yīng)的一級(jí)引用對(duì)象和二級(jí)引用對(duì)象的集合,所述二級(jí)引用對(duì)象為所述引用一級(jí)引用對(duì)象的內(nèi)存對(duì)象。
5.根據(jù)權(quán)利要求2所述的內(nèi)存泄漏調(diào)試方法,其特征在于,所述將所述目標(biāo)對(duì)象集合轉(zhuǎn)換為目標(biāo)內(nèi)存對(duì)象及相應(yīng)的一級(jí)引用對(duì)象的集合包括:
取出每個(gè)內(nèi)存對(duì)象引用的其他內(nèi)存對(duì)象的地址列表,針對(duì)每一個(gè)目標(biāo)內(nèi)存對(duì)象,遍歷所述地址列表,創(chuàng)建所述目標(biāo)內(nèi)存對(duì)象的引用對(duì)象列表項(xiàng)目,所述項(xiàng)目包括目標(biāo)內(nèi)存對(duì)象及所有引用該目標(biāo)內(nèi)存對(duì)象的一級(jí)引用對(duì)象,遍歷目標(biāo)對(duì)象集合,得到目標(biāo)內(nèi)存對(duì)象的引用對(duì)象列表項(xiàng)目的集合。
6.根據(jù)權(quán)利要求3所述內(nèi)存泄漏調(diào)試方法,其特征在于,所述推測(cè)所述所述目標(biāo)內(nèi)存對(duì)象及一級(jí)引用對(duì)象的數(shù)據(jù)類型包括:
針對(duì)引用關(guān)系鏈上的每一個(gè)內(nèi)存對(duì)象,根據(jù)分配函數(shù)棧信息,得到對(duì)應(yīng)的分配內(nèi)存對(duì)象的代碼行,由所述代碼行內(nèi)容推測(cè)引用關(guān)系鏈上的內(nèi)存對(duì)象的數(shù)據(jù)類型。
7.一種內(nèi)存泄漏調(diào)試裝置,其特征在于,包括:
掃描模塊,用于掃描每個(gè)內(nèi)存對(duì)象,獲取每個(gè)內(nèi)存對(duì)象引用的其他內(nèi)存對(duì)象的地址列表;
獲取模塊,用于獲取目標(biāo)對(duì)象集合,所述目標(biāo)對(duì)象集合包括待調(diào)試的目標(biāo)內(nèi)存對(duì)象;所述目標(biāo)對(duì)象集合包括活躍對(duì)象集合和物理泄漏對(duì)象集合,通過(guò)遍歷標(biāo)記算法區(qū)分所述活躍對(duì)象集合和物理泄漏對(duì)象集合;
構(gòu)造模塊,用于遍歷所述目標(biāo)對(duì)象集合中的物理泄漏對(duì)象集合,根據(jù)所述地址列表,構(gòu)造所述目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈;還用于遍歷所述目標(biāo)對(duì)象集合中的活躍對(duì)象集合,根據(jù)所述地址列表,構(gòu)造所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈;
存儲(chǔ)模塊,用于存儲(chǔ)內(nèi)存對(duì)象的調(diào)用棧信息;
判斷模塊,用于根據(jù)所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈,得到所述活躍對(duì)象集合中目標(biāo)內(nèi)存對(duì)象被引用的實(shí)際數(shù)目,若所述實(shí)際數(shù)目與預(yù)期的目標(biāo)數(shù)目相同,則判定所述目標(biāo)內(nèi)存對(duì)象不是邏輯泄漏對(duì)象,若所述實(shí)際數(shù)目大于所述目標(biāo)數(shù)目,則判定所述目標(biāo)內(nèi)存對(duì)象為邏輯泄漏對(duì)象;
所述裝置還用于根據(jù)所述物理泄漏對(duì)象集合中目標(biāo)內(nèi)存對(duì)象的引用關(guān)系鏈和調(diào)用棧信息,對(duì)物理泄漏的泄漏點(diǎn)進(jìn)行分析調(diào)試。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊科技(深圳)有限公司,未經(jīng)騰訊科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610997589.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 調(diào)試系統(tǒng)、調(diào)試方法和調(diào)試控制方法
- 一種終端調(diào)試方法和裝置
- 設(shè)備自動(dòng)工程調(diào)試方法、裝置、系統(tǒng)和計(jì)算機(jī)設(shè)備
- 基于串口的遠(yuǎn)程設(shè)備調(diào)試系統(tǒng)及方法
- 一種安卓系統(tǒng)動(dòng)態(tài)調(diào)試的方法及系統(tǒng)
- 調(diào)試裝置和遠(yuǎn)程調(diào)試系統(tǒng)
- 一種調(diào)試方法、裝置及系統(tǒng)
- 一種應(yīng)用程序開(kāi)發(fā)的調(diào)試系統(tǒng)及方法
- 樓宇設(shè)備的異地調(diào)試控制方法、裝置和計(jì)算機(jī)設(shè)備
- 一種芯片調(diào)試系統(tǒng)及芯片調(diào)試方法
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





