[發明專利]內存改寫的定位方法在審
| 申請號: | 201410089588.2 | 申請日: | 2014-03-12 |
| 公開(公告)號: | CN103914356A | 公開(公告)日: | 2014-07-09 |
| 發明(設計)人: | 趙眾 | 申請(專利權)人: | 漢柏科技有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 北京天奇智新知識產權代理有限公司 11340 | 代理人: | 謝磊 |
| 地址: | 300384 天津市西青*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 改寫 定位 方法 | ||
技術領域
本發明涉及計算機領域,具體地涉及一種內存改寫的定位方法。
背景技術
在當今IT行業,代碼開發中最頻繁的使用之一是內存的申請、使用與釋放。如果申請內存后,在使用的過程中內存被其它流程錯誤改寫,則之后正常流程再訪問此內存時會出現內存訪問異常的情況。如果出現內存改寫,則需要查找改寫內存的代碼位置。
現有技術中,內存改寫定位問題一直是困擾開發者的一大難題,出現內存改寫后,開發者花費大量的時間去查看代碼,查找是哪個地方的代碼改寫的內存,這樣既費時又費力。
發明內容
本發明鑒于上述情況而作出,其目的是提供一種內存改寫的定位方法,該方法通過自動檢測到內存的改寫后,打印出上一塊內存的內存頭信息和內存尾信息或者下一塊內存的內存頭信息和內存尾信息,根據打印的內存頭信息和內存尾信息,定位內存改寫的位置。當出現內存改寫后,通過該方法可以快速定位內存改寫信息,并且耗時短,效率高。
根據本發明的一個方面,提供了一種內存改寫的定位方法,該方法包括:訪問第一內存;檢測第一內存的內存頭魔數是否發生改變;如果第一內存的內存頭魔數發生改變,則第一內存被改寫,將第二內存的內存頭信息和內存尾信息打印出來,其中第二內存為第一內存的上一塊內存;檢測第一內存的內存尾魔數是否發生改變;如果第一內存的內存尾魔數發生改變,則第一內存被改寫,將第三內存的內存頭信息和內存尾信息打印出來,其中第三內存為第一內存的下一塊內存;通過打印的第二內存或第三內存的內存頭信息和內存尾信息,定位改寫第一內存的代碼位置,再將代碼位置的內存釋放。
優選地,如果第一內存的內存頭和內存尾魔數都未發生改變,則進行正常的訪問第一內存。
優選地,第一內存、第二內存和第三內存均包括:內存頭和內存尾。
優選地,內存頭包括:內存頭魔數、申請所需容量的內存、調用申請內存的函數地址及代碼行數信息和調用釋放內存的函數地址及代碼行數信息。
優選地,內存尾包括:內存尾魔數。
優選地,內存頭魔數用于確認申請內存的起始位置和申請釋放信息。
優選地,內存尾魔數用于確認申請內存的結束位置。
優選地,訪問第一內存之前,還包括:申請第一內存。
優選地,申請第一內存具體包括:將第一內存的內存頭魔數設置為第一數字,保存調用申請第一內存的函數地址及代碼行數信息在第一內存里,將第一內存的內存尾魔數設置為第二數字,再將第一內存加入到內存鏈表中。
優選地,將代碼位置的內存釋放具體包括:將第一內存的內存頭魔數設置為第三數字,保存調用釋放第一內存的函數地址及代碼行數信息在第一內存里,將第一內存的內存尾魔數設置為第四數字,再將內存從內存鏈表中摘除。
根據本發明的內存改寫的定位方法,通過自動檢測到內存的改寫后,打印出上一塊內存的內存頭信息和內存尾信息或者下一塊內存的內存頭信息和內存尾信息,根據打印的內存頭信息和內存尾信息,定位內存改寫的位置。通過該方法可以快速定位內存改寫信息,避免開發者花費大量時間去查找代碼,從而提高內存改寫的定位效率。
附圖說明
圖1是根據本發明實施方式的內存的結構示意圖;
圖2是根據本發明實施方式的內存的內存頭結構示意圖;
圖3是根據本發明實施方式的內存改寫的定位方法的流程圖;
圖4是根據本發明實施方式的申請內存的流程圖;
圖5是根據本發明實施方式的內存釋放的流程圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明了,下面結合具體實施方式并參照附圖,對本發明進一步詳細說明。
在現有的技術中,出現內存改寫后,開發者花費更多的時間去查看代碼,查找是哪個地方的代碼改寫的內存,這樣既費時又費力。
本發明的內存改寫的定位方法,通過自動檢測到內存的改寫后,打印出上一塊內存的內存頭信息和內存尾信息或者下一塊內存的內存頭信息和內存尾信息,根據打印的內存頭信息和內存尾信息,定位內存改寫的位置。
圖1是根據本發明實施方式的內存的結構示意圖。如圖1所示,內存包括:內存頭11和內存尾12。
圖2是根據本發明實施方式的內存的內存頭結構示意圖。如圖2所示,內存頭11包括:內存頭魔數21、申請所需容量的內存22、調用申請內存的函數地址23、調用申請內存的代碼行數信息24、釋放內存的函數地址25及釋放內存的代碼行數信息26。內存頭魔數用于確認申請內存的起始位置和申請釋放信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于漢柏科技有限公司,未經漢柏科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201410089588.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:固態硬盤檢錯裝置以及方法
- 下一篇:加固型陶瓷板





