[發明專利]一種內存溢出的調試方法、智能終端及存儲介質在審
| 申請號: | 202010026923.X | 申請日: | 2020-01-10 |
| 公開(公告)號: | CN111240880A | 公開(公告)日: | 2020-06-05 |
| 發明(設計)人: | 譚冰;孟慶曉 | 申請(專利權)人: | 深圳震有科技股份有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;G06F11/36 |
| 代理公司: | 深圳市君勝知識產權代理事務所(普通合伙) 44268 | 代理人: | 陳專;朱陽波 |
| 地址: | 518057 廣東省深圳市南山區粵海街*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 溢出 調試 方法 智能 終端 存儲 介質 | ||
本發明公開了一種內存溢出的調試方法、智能終端及存儲介質,通過配置內存管理單元中的內存塊的讀寫屬性,將內存劃分成讀寫與只讀交替的內存塊;獲取受保護的(只讀)內存塊,當檢測到對受保護的(只讀)內存塊進行寫操作時,則表示內存溢出;當內存溢出到受保護的內存塊,則捕獲內存溢出的異常。內存管理單元配置為只讀屬性的內存塊被非法寫操作時,系統會立即發現這個異常操作并調用異常處理函數記錄函數的調用棧來定位內存溢出的位置,將內存劃分為非保護和保護相間的若干內存塊,系統將非保護的(讀寫)內存塊分配出去使用,當寫操作訪問到保護的(只讀)內存時,說明有內存溢出的操作,系統捕獲到這個異常,大大增加了捕獲異常的概率。
技術領域
本發明涉及操作系統技術領域,尤其涉及一種內存溢出的調試方法、智能終端及存儲介質。
背景技術
內存溢出是指由于程序的錯誤導致使用的內存超出了程序申請內存的范圍。發生了內存溢出會使程序的運行變的不可預期,如果內存溢出將很重要的數據覆蓋了,系統可能會發出異常并重啟,如果覆蓋的數據不是太重要,系統可能會運行很長時間都還覺察不到問題。正是因為內存溢出讓程序行為變的不可預期,這類問題很難排查。
內存溢出是一個需要很大工作量去調測的復雜問題,引起內存溢出的寫操作會讓系統運行的行為變的不可預期,時常,在系統發生功能異常時離內存溢出操作有很長的時間了。現在定位問題常用的辦法是根據系統日志記錄的異常信息來定位,但由于異常的功能點和發生內存溢出的點有時根本沒聯系,增加了定位問題的難度。
因此,現有技術還有待于改進和發展。
發明內容
本發明的主要目的在于提供一種內存溢出的調試方法、智能終端及存儲介質,旨在解決現有技術中的上述缺陷。
為實現上述目的,本發明提供一種內存溢出的調試方法,所述內存溢出的調試方法包括如下步驟:
在內存管理單元中將內存劃分成讀寫與只讀交替的若干內存塊;
將不受保護的內存塊分配出去使用,當檢測到對受保護的內存塊進行寫操作時,則表示內存有溢出的操作,系統捕獲內存溢出的異常;
系統捕獲到異常并在異常處理函數中記錄函數的棧信息。
可選地,所述的內存溢出的調試方法,其中,每個內存塊配置相應的屬性及中斷信號用于監控只讀內存被寫的錯誤操作。
可選地,所述的內存溢出的調試方法,其中,將不受保護的內存塊分配出去使用,當檢測到對受保護的內存塊進行寫操作時,則表示內存有溢出的操作,具體包括:
每一塊可申請的內存塊均為1K字節對齊,應用程序常用的內存塊小于1K;
最小內存管理單元保護的內存塊為1K字節,所述內存管理單元請求需要將每個內存塊都進行1K字節對齊;
在不受保護的1內存塊后額外增加1K內存塊,額外的1K的內存塊為受保護的,表示只讀不可寫,當對受保護的塊進行寫操作則引起一個系統異常。
可選地,所述的內存溢出的調試方法,其中,所述內存溢出的調試方法還包括:
可分配的內存塊中的部分被用來存儲數據。
可選地,所述的內存溢出的調試方法,其中,所述內存溢出的調試方法還包括:
不受保護塊和受保護塊相間1K字節對齊的內存塊。
可選地,所述的內存溢出的調試方法,其中,所述內存溢出的調試方法還包括:
每個可分配的塊均包括1K字節受保護的額外的內存塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳震有科技股份有限公司,未經深圳震有科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010026923.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種內嵌式鋁合金窗框固定片免抹灰施工方法
- 下一篇:處理請求的方法和裝置





