国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種內(nèi)存監(jiān)控管理的方法及系統(tǒng)的制作方法

      文檔序號(hào):6611850閱讀:181來(lái)源:國(guó)知局
      專利名稱:一種內(nèi)存監(jiān)控管理的方法及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及內(nèi)存監(jiān)控管理技術(shù)領(lǐng)域。
      背景技術(shù)
      C語(yǔ)言沒(méi)有內(nèi)存回收管理機(jī)制和內(nèi)存訪問(wèn)越界檢查,因此應(yīng)用程序開發(fā)人 員在進(jìn)行程序設(shè)計(jì)時(shí),較容易遇到內(nèi)存泄漏和內(nèi)存非法訪問(wèn)的問(wèn)題。
      內(nèi)存泄露主要由于不斷分配的內(nèi)存無(wú)法及時(shí)地被釋放,久而久之,系統(tǒng)的
      內(nèi)存耗盡。造成內(nèi)存泄露的原因比較多,有可能這本身是庫(kù)中的bug,也有可
      能是因?yàn)槌绦騿T沒(méi)有正確理解它們的接口說(shuō)明文檔造成錯(cuò)用等。
      內(nèi)存非法訪問(wèn)是指軟件在進(jìn)行內(nèi)存訪問(wèn)時(shí)引起的錯(cuò)誤,這種錯(cuò)誤總體表現(xiàn)
      為兩種形式 一種是讀寫地址引用錯(cuò)誤;另一種是讀寫權(quán)限違反許可。
      總之,由于內(nèi)存泄漏和內(nèi)存非法訪問(wèn)是發(fā)生在程序的運(yùn)行期,因此出現(xiàn)這
      類問(wèn)題后,定位到相關(guān)源代碼往往比較困難。

      發(fā)明內(nèi)容
      本發(fā)明提供一種內(nèi)存監(jiān)控管理的方法及系統(tǒng),用以解決內(nèi)存泄露和內(nèi)存非 法訪問(wèn)的定位問(wèn)題。
      本發(fā)明提供了一種內(nèi)存監(jiān)控管理的方法,包括
      A、 將內(nèi)存管理模塊集成到應(yīng)用程序中;
      B、 所述內(nèi)存管理模塊對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟 蹤記錄內(nèi)存泄漏和/或非法訪問(wèn)信息;
      C、 定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以便于用戶根據(jù)所
      述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼。
      進(jìn)一步地,上述方法中,所述步驟A具體包括
      Al、將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中; A2、引入重載函數(shù);
      A3、在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建一預(yù)定大小的內(nèi)存
      池;
      A4、設(shè)置內(nèi)存檢測(cè)定時(shí)器。
      進(jìn)一步地,上述方法中,所述步驟A還包括
      A5、設(shè)置—-MEM—DEBUG—編譯選項(xiàng),該選項(xiàng)可以控制應(yīng)用程序編譯時(shí)是否 集成內(nèi)存管理模塊,編譯目標(biāo)工程。 進(jìn)一步地,所述步驟A3具體包括
      利用邊界保護(hù)方法,在內(nèi)存池兩端各預(yù)留預(yù)定大小的保護(hù)邊界空間; 利用伙伴算法將內(nèi)存劃分成多個(gè)內(nèi)存塊,所述內(nèi)存塊包含內(nèi)存管理信息塊 和應(yīng)用程序數(shù)據(jù)內(nèi)存塊。 所述步驟A3還包括
      將所述內(nèi)存塊同時(shí)掛接在紅黑樹和宏定義鏈表上。
      所述內(nèi)存管理信息塊中記錄有內(nèi)存分配的上下文信息,所述上下文信息包
      括源代碼文件名稱和所在行號(hào)。
      進(jìn)一步地,所述步驟C具體包括
      定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶;
      用戶對(duì)所述內(nèi)存非法訪問(wèn)信息分析進(jìn)行分析,定位內(nèi)存非法訪問(wèn)代碼行; 和/或,比較前后內(nèi)存泄露信息的差異來(lái)診斷是否存在內(nèi)存泄漏,定位內(nèi)存泄漏 代碼行。
      本發(fā)明還提供了一種內(nèi)存監(jiān)控管理的系統(tǒng),包括
      內(nèi)存管理模塊,用于對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤
      記錄內(nèi)存泄漏和/或非法訪問(wèn)信息;
      集成模塊,用于將內(nèi)存管理模塊集成到應(yīng)用程序中;
      信息上報(bào)模塊,用于定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以 便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼。
      進(jìn)一步地,上述系統(tǒng)中,所述集成模塊具體包括
      源代碼添加單元,用于將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中; 函數(shù)重載單元,用于引入重載函數(shù);
      內(nèi)存池創(chuàng)建單元,用于在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建 一預(yù)定大小的內(nèi)存池。
      所述內(nèi)存池包括兩端保護(hù)邊界空間和多個(gè)內(nèi)存塊,所述內(nèi)存塊包括內(nèi) 存管理信息塊和應(yīng)用程序數(shù)據(jù)內(nèi)存塊;
      內(nèi)存管理信息塊,用于記錄內(nèi)存分配的上下文信息,所述上下文信息包括 源代碼文件名稱和所在行號(hào);
      應(yīng)用程序數(shù)據(jù)內(nèi)存塊,用于存儲(chǔ)應(yīng)用程序的數(shù)據(jù)。
      所述內(nèi)存塊同時(shí)桂接在紅黑樹和宏定義鏈表上。
      綜上所述,本發(fā)明實(shí)施例提供了一種內(nèi)存監(jiān)控管理的方法及系統(tǒng),通過(guò)使 用內(nèi)存池、伙伴算法、紅黑樹算法以及宏定義鏈表這幾項(xiàng)關(guān)鍵技術(shù),在很大程 度上保證了應(yīng)用程序內(nèi)存使用安全,提高了內(nèi)存分配效率,利用內(nèi)存管理信息 塊跟蹤記錄內(nèi)存分配使用信息,在發(fā)生內(nèi)存非法使用時(shí),及時(shí)記錄運(yùn)行時(shí)日志, 為開發(fā)人員分析定位問(wèn)題提供充分依據(jù),能夠節(jié)約很大一部分開發(fā)調(diào)試時(shí)間。


      圖1為本發(fā)明實(shí)施例所述內(nèi)存管理模塊集成的流程示意圖2為本發(fā)明實(shí)施例所述內(nèi)存池的結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例所述系統(tǒng)的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      本發(fā)明實(shí)施例的目的是為C語(yǔ)言(包括VC、 0++等)應(yīng)用程序開發(fā)者提供
      一種高效的內(nèi)存監(jiān)控和管理模塊,該模塊可以集成到應(yīng)用程序中,并對(duì)應(yīng)用程
      序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤記錄內(nèi)存泄漏和非法訪問(wèn)信息,為
      開發(fā)人員快速準(zhǔn)確定位程序問(wèn)題提供回溯依據(jù)。
      下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例所述方法進(jìn)行詳細(xì)說(shuō)明。 首先,將內(nèi)存管理^t塊集成到應(yīng)用程序中;具體如圖l所示,圖l為內(nèi)存 管理模塊集成到應(yīng)用程序的流程示意圖,具體包括以下步驟
      步驟101:將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中。
      步驟102:在目標(biāo)C文件中增加并include "./mem/dmal loc. h"引用,引入 重載函數(shù);具體的說(shuō)就是,對(duì)C語(yǔ)言庫(kù)最基本的內(nèi)存分配、釋放、復(fù)制、設(shè)置、 比較函數(shù)和字符串操作函數(shù)作宏定義重載,即用自定義的mem_alloc函數(shù)系列 對(duì)系統(tǒng)的malloc等內(nèi)存操作函數(shù)進(jìn)行封裝,增加內(nèi)存使用監(jiān)控代碼,再以封 裝后的代碼替換原函數(shù)的實(shí)現(xiàn),從而實(shí)現(xiàn)函數(shù)的宏定義重載,以下簡(jiǎn)稱重載函 數(shù)。
      <吏用自定義的mem—al loc重載mal loc的示例 #undef malloc
      #define malloc(size) mem_alloc ((size), —FILE—, —LINE—)
      通過(guò)重載函數(shù)策略,內(nèi)存監(jiān)控模塊確保了重載前后應(yīng)用程序?qū)語(yǔ)言庫(kù)函
      數(shù)的接口調(diào)用的 一致性,同時(shí)也實(shí)現(xiàn)了內(nèi)存管理模塊的自定義功能。
      步驟103:在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建一定大小的 內(nèi)存池;
      步驟104:設(shè)置內(nèi)存檢測(cè)定時(shí)器;
      步驟105:設(shè)置—MEM_DEBUG——編譯選項(xiàng),該選項(xiàng)可以控制應(yīng)用程序編譯時(shí) 是否集成內(nèi)存管理模塊,編譯目標(biāo)工程。
      其中,步驟103中,創(chuàng)建內(nèi)存池的過(guò)程具體包括
      采用在內(nèi)存池的邊界設(shè)置SAFE_MARGIN (邊界保護(hù))的方法,在內(nèi)存池兩 端各預(yù)留一定大小(如1M)的保護(hù)邊界空間,具體應(yīng)用中可以才艮據(jù)實(shí)際情況修 改保護(hù)空間的大小,確保該內(nèi)存塊的安全;
      利用伙伴算法對(duì)大內(nèi)存塊進(jìn)行細(xì)分,每塊內(nèi)存塊包含一個(gè)內(nèi)存管理信息塊 (area-t)和應(yīng)用程序數(shù)據(jù)內(nèi)存塊(data),內(nèi)存管理信息塊中記錄了內(nèi)存分 配時(shí)的源文件、代碼行、分配時(shí)間、使用標(biāo)志和內(nèi)存塊大小的級(jí)別,為內(nèi)存泄 漏檢查和內(nèi)存使用監(jiān)控提供依據(jù);
      將所述內(nèi)存塊同時(shí)掛接在紅黑樹和宏定義鏈表上。 上述對(duì)分配一整塊內(nèi)存塊(系統(tǒng)預(yù)定義大小)進(jìn)行細(xì)分后的內(nèi)存池結(jié)構(gòu), 具體如圖2所示。
      當(dāng)應(yīng)用程序調(diào)試啟動(dòng)后,定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用 戶,以便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼,包括 定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶;
      用戶對(duì)所述內(nèi)存非法訪問(wèn)信息分析進(jìn)行分析,定位內(nèi)存非法訪問(wèn)代碼行; 和/或,比較前后內(nèi)存泄露信息的差異來(lái)診斷是否存在內(nèi)存泄漏,定位內(nèi)存泄漏 代碼行。
      具體的說(shuō)就是,在應(yīng)用程序調(diào)時(shí)過(guò)程中,內(nèi)存管理模塊對(duì)所述內(nèi)存塊的狀 況進(jìn)行監(jiān)控,并定期上報(bào)內(nèi)存泄露和/或非法訪問(wèn)信息,將內(nèi)存非法訪問(wèn)信息記
      錄在內(nèi)存非法訪問(wèn)日志文件(如dmem. log文件)中,該文件記錄了內(nèi)存越界 訪問(wèn)、訪問(wèn)無(wú)效指針、內(nèi)存重復(fù)分配代碼所在源文件、源代碼行號(hào)和操作的內(nèi) 存地址;將內(nèi)存泄漏信息記錄在內(nèi)存泄露日志文件(如memleak文件)中,該 文件記錄了內(nèi)存分配代碼所在源文件、源代碼行號(hào)、4乘作的內(nèi)存地址、內(nèi)存分 配時(shí)間和分配的內(nèi)存塊大小。
      這樣,用戶可以通過(guò)對(duì)dmem. log文件的分析,定位內(nèi)存非法訪問(wèn);通過(guò) 實(shí)時(shí)監(jiān)控memleak文件內(nèi)容的變化,定位內(nèi)存泄漏問(wèn)題。具體的內(nèi)存泄漏定位 方法是啟動(dòng)監(jiān)控^t塊進(jìn)入穩(wěn)定狀態(tài)后,^r查memleak文件記錄應(yīng)用程序初始 化分配的動(dòng)態(tài)內(nèi)存,之后,按一定時(shí)間間隔檢查memleak文件日志的變化,比 較前后兩次跟蹤日志的差異來(lái)診斷是否存在內(nèi)存泄漏,以及定位內(nèi)存泄漏代碼 行。
      下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例所述系統(tǒng)進(jìn)行詳細(xì)說(shuō)明。
      如圖3所示,本發(fā)明實(shí)施例所述內(nèi)存監(jiān)控管理的系統(tǒng)具體包括內(nèi)存管理
      模塊、集成模塊、信息上報(bào)模塊,其中,
      內(nèi)存管理模塊,用于對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤
      記錄內(nèi)存泄漏和/或非法訪問(wèn)信息。
      集成模塊,用于將內(nèi)存管理模塊集成到應(yīng)用程序中;所述集成模塊具體包

      源代碼添加單元,用于將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中; 函數(shù)重載單元,用于引入重載函數(shù);具體的說(shuō)就是,在目標(biāo)C文件中增加 弁include "./mem/dmalloc. h"引用,引入重載函數(shù);具體的說(shuō)就是,對(duì)C語(yǔ)言
      庫(kù)最基本的內(nèi)存分配、釋放、復(fù)制、設(shè)置、比較函數(shù)和字符串操作函數(shù)作宏定
      義重載,即用自定義的mem-alloc函數(shù)系列對(duì)系統(tǒng)的malloc等內(nèi)存操作函數(shù) 進(jìn)行封裝,增加內(nèi)存使用監(jiān)控代碼,再以封裝后的代碼替換原函數(shù)的實(shí)現(xiàn),從 而實(shí)現(xiàn)函數(shù)的宏定義重載;
      內(nèi)存池創(chuàng)建單元,用于在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建 一預(yù)定大小的內(nèi)存池;所述內(nèi)存池的結(jié)構(gòu)如圖2所示,包括兩端保護(hù)邊界空 間和多個(gè)內(nèi)存塊,所述內(nèi)存塊包括內(nèi)存管理信息塊和應(yīng)用程序數(shù)據(jù)內(nèi)存塊;
      內(nèi)存管理信息塊,用于記錄內(nèi)存分配的上下文信息,所述上下文信息包括 源代碼文件名稱和所在行號(hào);
      應(yīng)用程序數(shù)據(jù)內(nèi)存塊,用于存儲(chǔ)應(yīng)用程序的數(shù)據(jù)。
      所述內(nèi)存塊同時(shí)掛接在紅黑樹和宏定義鏈表上。
      信息上報(bào)模塊,用于定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以 便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼;具體的說(shuō)就 是,在應(yīng)用程序調(diào)試過(guò)程中,所述信息上報(bào)模塊定期上報(bào)內(nèi)存泄露和/或非法訪 問(wèn)信息,將內(nèi)存非法訪問(wèn)信息記錄在內(nèi)存非法訪問(wèn)日志文件(如dmem. log文 件)中,該文件記錄了內(nèi)存越界訪問(wèn)、訪問(wèn)無(wú)效指針、內(nèi)存重復(fù)分配代碼所在 源文件、源代碼行號(hào)和操作的內(nèi)存地址;將內(nèi)存泄漏信息記錄在內(nèi)存泄露曰志 文件(如memleak文件)中,該文件記錄了內(nèi)存分配代碼所在源文件、源代碼 行號(hào)、操作的內(nèi)存地址、內(nèi)存分配時(shí)間和分配的內(nèi)存塊大小。
      綜上所述,本發(fā)明實(shí)施例提供了一種內(nèi)存監(jiān)控管理的方法及系統(tǒng),通過(guò)使 用內(nèi)存池、伙伴算法、紅黑樹算法以及宏定義鏈表這幾項(xiàng)關(guān)鍵技術(shù),在很大程 度上保證了應(yīng)用程序內(nèi)存使用安全,提高了內(nèi)存分配效率,利用內(nèi)存管理信息
      塊跟蹤記錄內(nèi)存分配使用信息,在發(fā)生內(nèi)存非法使用時(shí),及時(shí)記錄運(yùn)行時(shí)日志, 為開發(fā)人員分析定位問(wèn)題提供充分依據(jù),能夠節(jié)約很大一部分開發(fā)調(diào)試時(shí)間。 本發(fā)明實(shí)施例所述方法及系統(tǒng)在電信VC項(xiàng)目開發(fā)過(guò)程中,尤其可以發(fā)揮
      其重要的作用,由于該項(xiàng)目中對(duì)diameter協(xié)議的解析使用了大量的動(dòng)態(tài)內(nèi)存
      涉及協(xié)議解析部分的內(nèi)存塊通常都比較小,且隨著項(xiàng)目的進(jìn)一步開展,程序的 代碼量和復(fù)雜度成倍增加,在這種情況下要定位內(nèi)存泄漏,特別是定位隱示內(nèi) 存泄漏將變得及其困難。本發(fā)明實(shí)施例所述方法及系統(tǒng)通過(guò)將該工具與工程文 件集成在一起進(jìn)行開發(fā),通過(guò)分析工程中內(nèi)存使用概況,定時(shí)觀察程序?qū)?nèi)存 的使用情況,很快診斷出內(nèi)存泄漏所在,并成功解決,為項(xiàng)目的開展帶來(lái)很有 效的輔助手段。
      以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
      ,但本發(fā)明的保護(hù)范圍并不局 限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù) 范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
      權(quán)利要求
      1、一種內(nèi)存監(jiān)控管理的方法,其特征在于,包括A、將內(nèi)存管理模塊集成到應(yīng)用程序中;B、所述內(nèi)存管理模塊對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤記錄內(nèi)存泄漏和/或非法訪問(wèn)信息;C、定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼。
      2、 如權(quán)利要求l所述的方法,其特征在于,所述步驟A具體包括Al、將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中; A2、引入重載函數(shù);A3、在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建一預(yù)定大小的內(nèi)存池;A4、設(shè)置內(nèi)存檢測(cè)定時(shí)器。
      3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟A還包括A5、設(shè)置—MEM—DEBUG-—編譯選項(xiàng),該選項(xiàng)可以控制應(yīng)用程序編譯時(shí)是否 集成內(nèi)存管理模塊,編譯目標(biāo)工程。
      4、 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述步驟A3具體包括 利用邊界保護(hù)方法,在內(nèi)存池兩端各預(yù)留預(yù)定大小的保護(hù)邊界空間;利用伙伴算法將內(nèi)存劃分成多個(gè)內(nèi)存塊,所述內(nèi)存塊包含內(nèi)存管理信息塊 和應(yīng)用程序數(shù)據(jù)內(nèi)存塊。
      5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟A3還包括 將所述內(nèi)存塊同時(shí)桂接在紅黑樹和宏定義鏈表上。
      6、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述內(nèi)存管理信息塊中記錄有內(nèi)存分配的上下文信息,所述上下文信息包括源代碼文件名稱和所在行號(hào)。
      7、 根據(jù)權(quán)利要求1到3中任意一項(xiàng)所述的方法,其特征在于,所述步驟C 具體包括定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶;用戶對(duì)所述內(nèi)存非法訪問(wèn)信息分析進(jìn)行分析,定位內(nèi)存非法訪問(wèn)代碼行; 和/或,比較前后內(nèi)存泄露信息的差異來(lái)診斷是否存在內(nèi)存泄漏,定位內(nèi)存泄漏 代碼行。
      8、 一種內(nèi)存監(jiān)控管理的系統(tǒng),其特征在于,包括內(nèi)存管理模塊,用于對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤 記錄內(nèi)存泄漏和/或非法訪問(wèn)信息;集成模塊,用于將內(nèi)存管理模塊集成到應(yīng)用程序中;信息上報(bào)模塊,用于定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以 便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼。
      9、 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述集成模塊具體包括源代碼添加單元,用于將內(nèi)存管理模塊源代碼添加到目標(biāo)工程中; 函數(shù)重載單元,用于引入重載函數(shù);內(nèi)存池創(chuàng)建單元,用于在程序初始化啟動(dòng)時(shí)根據(jù)應(yīng)用程序?qū)嶋H需求,創(chuàng)建 一預(yù)定大小的內(nèi)存池。
      10、 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述內(nèi)存池包括兩端保 護(hù)邊界空間和多個(gè)內(nèi)存塊,所述內(nèi)存塊包括內(nèi)存管理信息塊和應(yīng)用程序數(shù)據(jù) 內(nèi)存塊;內(nèi)存管理信息塊,用于記錄內(nèi)存分配的上下文信息,所述上下文信息包括: 源代碼文件名稱和所在行號(hào); 應(yīng)用程序數(shù)據(jù)內(nèi)存塊,用于存儲(chǔ)應(yīng)用程序的數(shù)據(jù)。
      全文摘要
      本發(fā)明公開了一種內(nèi)存監(jiān)控管理的方法及系統(tǒng),包括A.將內(nèi)存管理模塊集成到應(yīng)用程序中;B.所述內(nèi)存管理模塊對(duì)應(yīng)用程序運(yùn)行時(shí)的內(nèi)存分配與訪問(wèn)進(jìn)行監(jiān)控,跟蹤記錄內(nèi)存泄漏和/或非法訪問(wèn)信息;C.定期上報(bào)所述內(nèi)存泄露和/或非法訪問(wèn)信息給用戶,以便于用戶根據(jù)所述內(nèi)存泄露和/或非法訪問(wèn)信息定位到相關(guān)代碼。綜上所述,本發(fā)明實(shí)施例提供了一種內(nèi)存監(jiān)控管理的方法及系統(tǒng),通過(guò)跟蹤記錄內(nèi)存分配使用信息,在發(fā)生內(nèi)存非法使用或內(nèi)存泄露時(shí),及時(shí)記錄運(yùn)行時(shí)日志,為開發(fā)人員分析定位問(wèn)題提供充分依據(jù),能夠節(jié)約很大一部分開發(fā)調(diào)試時(shí)間。
      文檔編號(hào)G06F9/46GK101110044SQ20071014554
      公開日2008年1月23日 申請(qǐng)日期2007年8月28日 優(yōu)先權(quán)日2007年8月28日
      發(fā)明者鄭興友, 洪 高 申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1