[發明專利]內存重復釋放的定位方法和系統有效
| 申請號: | 200610150461.2 | 申請日: | 2006-10-31 |
| 公開(公告)號: | CN101174241A | 公開(公告)日: | 2008-05-07 |
| 發明(設計)人: | 葉媲書;傅紅燕 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F9/46 |
| 代理公司: | 北京康信知識產權代理有限責任公司 | 代理人: | 李偉;吳孟秋 |
| 地址: | 518057廣東省深圳市南*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 重復 釋放 定位 方法 系統 | ||
技術領域
本發明涉及內存使用技術,尤其涉及一種內存重復釋放的定位方法和系統。
背景技術
現在的軟件系統有的非常龐大,代碼動輒上百萬行。而在這些系統中,由于數據關系復雜,經常會一個指針存放在多個地方,且每個指針都可能有多個流程會進行釋放。一個正確的系統,應該保證,一塊被申請的內存,不管有多少個指針指向它,都只能被釋放一次。
但在實際系統中,由于使用復雜,經常會由于異常流程導致內存重復釋放。為了定位重復釋放問題,一種經常采用的方法是在檢測到重復釋放后打印當前運行環境,通過當前環境發現是哪個指針釋放出錯。這種方法對單個指針重復釋放的檢測比較有效。但一旦多個指針指向同一塊內存且多個指針同時發生釋放,該方法就無法準確知道重復釋放的錯誤根源,不知道是怎樣的業務流程導致重復釋放。為了定位問題,不得不通過大量走讀代碼或者在釋放流程處打點進行復現,非常耗費時間和精力。
因此,需要一種針對內存重復釋放的定位技術方案,以在多個流程重復釋放內存的情況下快速定位錯誤根源。
發明內容
本發明的主要目的在于提供一種內存重復釋放的定位方法和系統,用于克服現有技術中的無法有效發現多個流程釋放同一個內存的錯誤,導致多個流程在異常情況下重復釋放內存,不得不耗費大量人力去復現或者走讀代碼來發現錯誤所在的問題。
為了實現上述目的,根據本發明的第一方面,本發明提供了一種內存重復釋放的定位方法。定位方法包括以下步驟:
步驟S102,申請業務內存,并申請與業務內存相關的關聯內存;
步驟S104,在釋放業務內存之前或同時,獲得關聯內存的地址;
步驟S106,檢測是否為重復釋放,如果是重復釋放,則進行至步驟S108,如果不是重復釋放,則進行至步驟S110;
步驟S108將當前運行環境記錄到指定記錄區,并將關聯內存的內容轉儲到指定記錄區,通過分析指定記錄區的記錄,進行重復釋放定位;
步驟S110,將當前運行環境記錄到關聯內存中。
可選地,在步驟S102中,通過表記錄業務內存的地址和關聯內存的地址。在步驟S104中,通過查表,獲得關聯內存的地址。
運行環境包括調用?;蛉蝿招畔⒒蚋鞣N信息的組合。指定記錄區包括日志文件、屏幕、或內存區。
為了實現上述目的,根據本發明的第二方面,本發明提供了一種內存重復釋放的定位系統。定位系統包括:申請模塊,用于申請業務內存,以及申請與業務內存相關的關聯內存;釋放模塊,用于釋放業務內存,以及獲得關聯內存的地址;檢測模塊,用于檢測釋放模塊進行的業務內存的釋放是否為重復釋放;處理模塊,用于在檢測模塊檢測出釋放是重復釋放時,將當前運行環境記錄到指定記錄區,并將關聯內存的內容轉儲到指定記錄區,以及在檢測模塊檢測出釋放不是重復釋放時,將當前運行環境記錄到述關聯內存中。
可選地,申請模塊通過表記錄業務內存的地址和關聯內存的地址。釋放模塊通過查表獲得關聯內存的地址。
運行環境包括調用?;蛉蝿招畔⒒蚋鞣N信息的組合。指定記錄區包括日志文件、屏幕、或內存區。
通過上述技術方案,本發明在發生內存重復釋放時,可以快速定位錯誤根源,避免了人工走讀代碼或打點復現,極大的提高了排錯效率。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是根據本發明的內存重復釋放的定位方法的流程圖;
圖2是根據本發明的內存重復釋放的定位系統的框圖;
圖3是根據本發明實施例的內存釋放時的流程圖。
具體實施方式
下面將參考附圖詳細說明本發明。
參照圖1,根據本發明的內存重復釋放的定位方法包括以下步驟:
步驟S102,申請業務內存,并申請與業務內存相關的關聯內存。
通過表記錄業務內存的地址和關聯內存的地址。
步驟S104,在釋放業務內存之前或同時,獲得關聯內存的地址。
通過查表,獲得關聯內存的地址。
步驟S106,檢測是否為重復釋放,如果是重復釋放,則進行至步驟S108,如果不是重復釋放,則進行至步驟S110。
步驟S108,將當前運行環境記錄到指定記錄區,并將關聯內存的內容轉儲到指定記錄區,通過分析指定記錄區的記錄,進行重復釋放定位。
運行環境包括調用?;蛉蝿招畔⒒蚋鞣N信息的組合。
指定記錄區包括日志文件、屏幕、或內存區。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200610150461.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種音頻信號轉換器
- 下一篇:下一代通信網絡實現IPTV的設備、系統和方法





