• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    內(nèi)存塊有效性檢測(cè)方法技術(shù)

    技術(shù)編號(hào):7996248 閱讀:283 留言:0更新日期:2012-11-22 05:05
    本發(fā)明專利技術(shù)提供了一種內(nèi)存塊有效性檢測(cè)方法,主要包括:獲取內(nèi)存管理系統(tǒng)中內(nèi)存池的起始地址及結(jié)束地址;檢索內(nèi)存管理系統(tǒng)中的空閑內(nèi)存塊AVL樹,收集所有空閑內(nèi)存塊的信息,以數(shù)組形式存儲(chǔ),并按照內(nèi)存塊地址進(jìn)行由低到高排序;判斷是否存在空閑塊,如果是存在空閑塊,檢測(cè)當(dāng)前空閑塊的有效性,如果不存在空閑塊,則檢測(cè)完成;如果內(nèi)存塊不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊循環(huán)檢測(cè)。本發(fā)明專利技術(shù)在不擴(kuò)展內(nèi)存塊現(xiàn)有組織結(jié)構(gòu)以及不需要增加任何標(biāo)記消耗額外內(nèi)存的基礎(chǔ)上,能有效地檢測(cè)出內(nèi)存管理系統(tǒng)中出現(xiàn)的內(nèi)存壞塊,并提示壞塊位置及信息,以方便開發(fā)人員定位解決出現(xiàn)壞塊的原因。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專利技術(shù)涉及一種,尤其是涉及嵌入式系統(tǒng)中內(nèi)存塊的有效性檢測(cè)方法。
    技術(shù)介紹
    針對(duì)內(nèi)存塊有效性的檢測(cè)的方法,例如,內(nèi)存訪問越界的檢測(cè)方法,現(xiàn)有技術(shù)中的解決方案,往往是在內(nèi)存管理系統(tǒng)中通過擴(kuò)展內(nèi)存塊組織結(jié)構(gòu),在訪問時(shí)設(shè)置各類標(biāo)記,并且經(jīng)過特殊的中間接口進(jìn)行。在檢測(cè)過程中,通過檢查擴(kuò)展的內(nèi)存塊結(jié)構(gòu)標(biāo)記,判斷內(nèi)存是否發(fā)生越界。對(duì)于嵌入式系統(tǒng)而言,內(nèi)存資源是非常寶貴的,通過擴(kuò)展內(nèi)存塊組織結(jié)構(gòu),設(shè)置各·類標(biāo)記,可以一定程度上檢測(cè)出訪問越界的情況,但是必然會(huì)增加內(nèi)存資源的附加消耗,而且隨著內(nèi)存塊的增加,消耗的程度更加明顯,這將導(dǎo)致實(shí)際可用的內(nèi)存大小被削減。如公開號(hào)CN 100487658C,公開日為2009年5月13日的中國(guó)專利還揭示了一種內(nèi)存訪問越界的檢測(cè)方法,該檢測(cè)方法的主要步驟是在應(yīng)用程序所申請(qǐng)內(nèi)存塊的前端增加申請(qǐng)?jiān)搩?nèi)存塊的調(diào)用代碼地址信息,尾端增加保護(hù)字和空閑區(qū)長(zhǎng)度信息,同時(shí),在空閑區(qū)填充保護(hù)標(biāo)記,當(dāng)應(yīng)用程序釋放內(nèi)存時(shí),檢測(cè)是否存在內(nèi)存寫入越界,并提示相關(guān)的異常信息。該檢測(cè)方法設(shè)置了保護(hù)標(biāo)記,增加內(nèi)存資源的附加消耗,而且隨著內(nèi)存塊的增加,消耗的程度更加明顯,這將導(dǎo)致實(shí)際可用的內(nèi)存大小被削減。
    技術(shù)實(shí)現(xiàn)思路
    本專利技術(shù)需解決的技術(shù)問題是克服上述的不足,在不需要增加任何標(biāo)記而消耗額外內(nèi)存的條件下,提供一種能方便地檢測(cè)出內(nèi)存管理系統(tǒng)中出現(xiàn)的內(nèi)存壞塊,并提示壞塊位置及信息的。為解決上述的技術(shù)問題,本專利技術(shù)設(shè)計(jì)了一種,其包括如下步驟stepl :獲取內(nèi)存管理系統(tǒng)中內(nèi)存池的起始地址及結(jié)束地址,從而確定內(nèi)存管理系統(tǒng)的范圍;step2 :檢索內(nèi)存管理系統(tǒng)中的空閑內(nèi)存塊AVL樹,收集所有空閑內(nèi)存塊的信息,以數(shù)組形式存儲(chǔ),并按照內(nèi)存塊地址進(jìn)行由低到高排序;st印3 :判斷是否存在空閑塊,如果是存在空閑塊,執(zhí)行step4,如果不存在空閑塊,則檢測(cè)完成;Step4 :檢測(cè)當(dāng)前空閑塊的有效性step4. I :如果不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)step3,即,重復(fù)判斷是否還存在空閑塊,如果還存在空閑塊,重復(fù)檢測(cè)該空閑塊的有效性;如果不存在空閑塊,則檢測(cè)完成;step4. 2 :如果能通過有效性檢測(cè),則檢測(cè)下一個(gè)內(nèi)存塊的有效性,如果能通過有效性檢測(cè),則執(zhí)行step5,如果不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)st印3 ;step5 :判斷再下一個(gè)內(nèi)存塊是否為空閑塊,如果是空閑塊,重復(fù)step4 ;如果不是空閑塊,則判斷是否為最后一個(gè)分配塊,如果是最后一個(gè)分配塊,則檢測(cè)完成,如果不是最后一個(gè)分配塊,則執(zhí)行step6 ;step6 :檢測(cè)該分配塊的有效性,如果該分配塊能通過有效性檢測(cè),則重復(fù)step5 ;如果該分配塊不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)step3。本專利技術(shù)檢測(cè)內(nèi)存塊管理系統(tǒng)中各個(gè)內(nèi)存塊的有效性時(shí),自第一個(gè)空閑塊開始,依序向后檢測(cè)各個(gè)空閑塊的有效性。這樣可以檢測(cè)出更多的壞塊。在上述檢測(cè)內(nèi)存塊的有效性時(shí),所采用的方法包括(I)、內(nèi)存塊地址是否對(duì)齊,·如果不對(duì)齊,則該內(nèi)存塊為壞塊,如果對(duì)齊,則該內(nèi)存塊有效。(2)、檢測(cè)內(nèi)存塊地址是否超過內(nèi)存系統(tǒng)的管理范圍,如果超出,則該內(nèi)存塊為壞塊,如果不超出,則該內(nèi)存塊有效。(3 )、檢測(cè)內(nèi)存塊的大小是否對(duì)齊(什么大小?空氣大小、與誰對(duì)齊?),如果對(duì)齊,則該內(nèi)存塊為壞塊,如果不對(duì)齊,則該內(nèi)存塊有效。(4)、檢測(cè)內(nèi)存塊的大小是否超出內(nèi)存系統(tǒng)管理的范圍,如果超出,則該內(nèi)存塊為壞塊,如果不超出,則該內(nèi)存塊有效。(5 )、檢測(cè)內(nèi)存塊的前后塊地址是否超出內(nèi)存系統(tǒng)管理的范圍,如果超出,則該內(nèi)存塊為壞塊,如果不超出,則該內(nèi)存塊有效。作為本專利技術(shù)進(jìn)一步改進(jìn),執(zhí)行step4. 2時(shí),在檢測(cè)下一個(gè)內(nèi)存塊的有效性之前,檢查該下一個(gè)內(nèi)存塊是否連續(xù),若不連續(xù),則說明該下一個(gè)內(nèi)存塊的頭部信息被破壞,則為壞塊,提示該壞塊的位置以及其詳細(xì)信息,不再進(jìn)行有效性檢測(cè);如果連續(xù),再繼續(xù)進(jìn)行有效性檢測(cè)。作為本專利技術(shù)進(jìn)一步改進(jìn),在執(zhí)行step6時(shí),檢測(cè)該分配塊的有效性之前,也先檢查該分配塊是否連續(xù),若不連續(xù),則說明該分配塊的頭部信息被破壞,則為壞塊,提示該壞塊的位置以及其詳細(xì)信息,不再進(jìn)行有效性檢測(cè);如果連續(xù),再繼續(xù)進(jìn)行有效性檢測(cè)。在有效性檢測(cè)之前,先檢測(cè)是否連續(xù),即可馬上判斷出是否是壞塊,節(jié)省程序和時(shí)間。與現(xiàn)有技術(shù)相比,本專利技術(shù)在不擴(kuò)展內(nèi)存塊現(xiàn)有組織結(jié)構(gòu)以及不需要增加任何標(biāo)記消耗額外內(nèi)存的基礎(chǔ)上,能有效地檢測(cè)出內(nèi)存管理系統(tǒng)中出現(xiàn)的內(nèi)存壞塊,并提示壞塊位置及信息,以方便開發(fā)人員定位解決出現(xiàn)壞塊的原因。附圖說明圖I是本專利技術(shù)實(shí)施例內(nèi)存管理系統(tǒng)中內(nèi)存塊結(jié)構(gòu)示意圖;圖2是本專利技術(shù)實(shí)施例內(nèi)存管理系統(tǒng)中各個(gè)內(nèi)存塊維護(hù)的內(nèi)存信息示意圖;圖3是本專利技術(shù)實(shí)施例的流程圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施方式對(duì)本專利技術(shù)作進(jìn)一步說明。本專利技術(shù)用于檢測(cè)嵌入式系統(tǒng)中內(nèi)存塊的有效性,在嵌入式系統(tǒng)中植入該機(jī)制,從而檢測(cè)出嵌入式系統(tǒng)內(nèi)存中出現(xiàn)的壞塊,該壞塊可能是內(nèi)存塊訪問越界產(chǎn)生的,也有可能是直接內(nèi)存指針訪問破壞了內(nèi)存塊的頭部信息造成的。在發(fā)現(xiàn)壞塊時(shí),提示壞塊的位置及壞塊的具體信息。在內(nèi)存管理系統(tǒng)中存在兩種類型的內(nèi)存塊,包括:ALL0C塊和FREE塊。ALLOC塊為被使用、已被分配的內(nèi)存塊,在本文中簡(jiǎn)稱分配塊;FREE塊為空閑內(nèi)存塊,在本文中簡(jiǎn)稱空閑塊。如圖I所示,為本專利技術(shù)的一種實(shí)施例,內(nèi)存管理系統(tǒng)中ALLOC塊和FREE塊的示意圖。ALLOC塊和FREE塊交替存在,并且,不存在兩個(gè)或兩個(gè)以上的FREE塊相鄰,所以,F(xiàn)REE塊后面相鄰的空閑塊一定為ALLOC塊。并且,最后一個(gè)內(nèi)存塊為ALLOC塊。如圖2所示,每個(gè)內(nèi)存塊(即ALLOC塊和FREE)都具有同樣的結(jié)構(gòu),即包括頭部信息和用戶數(shù)據(jù)。頭部信息中包含了前一個(gè)內(nèi)存塊的大小及本內(nèi)存塊的大小和FREE標(biāo)記(空閑標(biāo)記)等其他信息,通過這些信息可以獲得相鄰的前一個(gè)內(nèi)存塊及后一個(gè)內(nèi)存塊的位置。·本專利技術(shù)從第一個(gè)空閑內(nèi)存塊開始,向其后逐個(gè)檢查每個(gè)內(nèi)存塊的有效性,直到發(fā)現(xiàn)壞塊,再到達(dá)下一個(gè)空閑塊的位置,自該空閑塊開始檢測(cè),向其后逐個(gè)檢查每個(gè)內(nèi)存塊的有效性,直到發(fā)現(xiàn)壞塊,再到達(dá)下一個(gè)空閑塊的位置,循序檢測(cè),至無空閑塊或最后一個(gè)ALLOC塊,檢測(cè)完成,這樣可以檢測(cè)出更多的壞塊。如圖3所示,包括的步驟如下stepl :獲取內(nèi)存管理系統(tǒng)中內(nèi)存池的起始地址及結(jié)束地址,從而確定內(nèi)存管理系統(tǒng)的范圍,為開始做準(zhǔn)備;step2 :檢索內(nèi)存管理系統(tǒng)中的空閑內(nèi)存塊AVL樹(自平衡二叉查找樹),收集所有空閑內(nèi)存塊的信息,以數(shù)組形式存儲(chǔ),并按照內(nèi)存塊地址進(jìn)行由低到高排序,從而獲取空閑塊鏈表;step3 :判斷是否存在空閑塊,如果是存在空閑塊,就檢測(cè)當(dāng)前空閑塊的有效性,即執(zhí)行下一個(gè)步驟step4,如果不存在空閑塊,則檢測(cè)完成。此處判斷程序的目的是判斷如果內(nèi)存管理系統(tǒng)中已不存在空閑塊,則檢測(cè)完成;反之,則繼續(xù)檢測(cè)。step4 :檢測(cè)當(dāng)前空閑塊的有效性,在本專利技術(shù)的實(shí)施方式,自第一個(gè)空閑塊開始,依序向后檢測(cè)各個(gè)空閑塊的有效性檢測(cè)當(dāng)前空閑塊的有效性時(shí),存在兩種情況第一種情況(即step4. I):如果當(dāng)前空閑塊不能通過有效性本文檔來自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】
    一種內(nèi)存塊有效性檢測(cè)方法,其特征在于:所述內(nèi)存塊有效性檢測(cè)方法包括如下步驟:step1:獲取內(nèi)存管理系統(tǒng)中內(nèi)存池的起始地址及結(jié)束地址,從而確定內(nèi)存管理系統(tǒng)的范圍;step2:檢索內(nèi)存管理系統(tǒng)中的空閑內(nèi)存塊AVL樹,收集所有空閑內(nèi)存塊的信息,以數(shù)組形式存儲(chǔ),并按照內(nèi)存塊地址進(jìn)行由低到高排序;step3:判斷是否存在空閑塊,如果是存在空閑塊,執(zhí)行step4,如果不存在空閑塊,則檢測(cè)完成;step4:檢測(cè)當(dāng)前空閑塊的有效性:step4.1:如果不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)step3,即,重復(fù)判斷是否還存在空閑塊,如果還存在空閑塊,重復(fù)檢測(cè)該空閑塊的有效性;如果不存在空閑塊,則檢測(cè)完成;step4.2:如果能通過有效性檢測(cè),則檢測(cè)下一個(gè)內(nèi)存塊的有效性,如果能通過有效性檢測(cè),則執(zhí)行step5,如果不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)step3;step5:判斷再下一個(gè)內(nèi)存塊是否為空閑塊,如果是空閑塊,重復(fù)step4;如果不是空閑塊,則判斷是否為最后一個(gè)分配塊,如果是最后一個(gè)分配塊,則檢測(cè)完成,如果不是最后一個(gè)分配塊,則執(zhí)行step6;step6:檢測(cè)該分配塊的有效性,如果該分配塊能通過有效性檢測(cè),則重復(fù)step5;如果該分配塊不能通過有效性檢測(cè),則作為壞塊,提示該壞塊的位置以及其詳細(xì)信息,再獲取下一個(gè)空閑塊并重復(fù)step3。...

    【技術(shù)特征摘要】

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:車任秋羅德貴周琳
    申請(qǐng)(專利權(quán))人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司
    類型:發(fā)明
    國(guó)別省市:

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 最新中文字幕av无码专区 | 爆乳无码AV一区二区三区| 无码人妻精品一区二区三区久久 | 亚洲av无码专区在线| 亚洲AV永久无码精品放毛片| 精品无人区无码乱码毛片国产 | 色综合久久无码五十路人妻| 最新亚洲人成无码网www电影| 无码精品视频一区二区三区| 青春草无码精品视频在线观| 亚洲一区二区三区国产精品无码| 亚洲Av无码国产一区二区 | 中文午夜人妻无码看片| 国产成人无码一二三区视频| 亚洲AV成人片无码网站| 日韩精品无码免费一区二区三区 | av区无码字幕中文色| 国产AV无码专区亚洲AV手机麻豆| 无码H黄肉动漫在线观看网站| 亚洲精品无码久久一线| 精品无人区无码乱码大片国产| 最新亚洲人成无码网www电影| 无码人妻丰满熟妇片毛片| 手机永久无码国产AV毛片| 岛国无码av不卡一区二区| 黑人无码精品又粗又大又长 | 日韩AV无码一区二区三区不卡 | 成人A片产无码免费视频在线观看| 免费无码A片一区二三区| 亚洲国产精品无码久久久| 国产精品VA在线观看无码不卡| 久久精品无码一区二区日韩AV| 国产成人无码a区在线观看视频免费| 亚洲精品无码专区| 亚洲日韩国产二区无码| 亚洲中文无码mv| 激情射精爆插热吻无码视频| 人妻丰满熟妇A v无码区不卡| 成人免费无码大片A毛片抽搐| 日产无码1区2区在线观看| 无码人妻精品一区二区蜜桃AV|