[發(fā)明專利]一種棧溢出處理的方法及裝置在審
| 申請?zhí)枺?/td> | 201710502695.7 | 申請日: | 2017-06-27 |
| 公開(公告)號: | CN109144756A | 公開(公告)日: | 2019-01-04 |
| 發(fā)明(設(shè)計(jì))人: | 劉自龍;朱亮亮;曾旭;陳凌君;王斌;蔡俊杰 | 申請(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 北京潤澤恒知識產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 溢出 內(nèi)存管理 內(nèi)存訪問 器件檢測 問題排查 溢出檢測 時效性 檢測 觸發(fā) 中斷 申請 發(fā)現(xiàn) | ||
本申請實(shí)施例提供了一種棧溢出處理的方法及裝置,其中所述方法包括:采用內(nèi)存管理器件檢測指定棧是否發(fā)生棧溢出;當(dāng)檢測到所述指定棧發(fā)生棧溢出時,由所述內(nèi)存管理器件觸發(fā)內(nèi)存訪問中斷。通過內(nèi)存管理器件來檢測棧溢出,可以有效提高棧溢出檢測的時效性,及時發(fā)現(xiàn)棧溢出等偶現(xiàn)性問題,縮短棧溢出問題排查時間。
技術(shù)領(lǐng)域
本申請涉及內(nèi)存處理技術(shù)領(lǐng)域,特別是涉及一種棧溢出處理的方法以及一種棧溢出處理的裝置。
背景技術(shù)
在操作系統(tǒng)的運(yùn)行過程中,棧溢出是導(dǎo)致操作系統(tǒng)不穩(wěn)定的重要原因,由于棧溢出具有偶現(xiàn)的特點(diǎn),往往很難找到導(dǎo)致問題的原因,導(dǎo)致產(chǎn)品研發(fā)周期的不確定性。
在現(xiàn)有技術(shù)中,通常采用如下方式進(jìn)行棧溢出檢測:
在進(jìn)程的棧初始化的時候,按預(yù)設(shè)的字節(jié)對齊方式,用特定魔數(shù)(比如0x9527)將棧元素依次完成初始化;在系統(tǒng)運(yùn)行的時候,通過守護(hù)進(jìn)程,依次遍歷各個進(jìn)程的棧,檢測棧元素的值是否等于初始化的魔數(shù),求得被污染的元素個數(shù)所占棧大小的比例,即為棧使用量,根據(jù)棧使用量來判定是否發(fā)生棧溢出。
通過這種方法,雖然能檢測到是否出現(xiàn)棧溢出,但由于需要在系統(tǒng)運(yùn)行的時候通過檢測魔數(shù)有沒有改變來判定是否出現(xiàn)溢出,此時距離棧溢出已經(jīng)有一段時間,因此,現(xiàn)有方案不能及時的檢測出棧溢出,導(dǎo)致棧溢出的排查時間較長。
發(fā)明內(nèi)容
鑒于上述問題,提出了本申請實(shí)施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種棧溢出處理的方法和相應(yīng)的一種棧溢出處理的裝置。
為了解決上述問題,本申請實(shí)施例公開了一種棧溢出處理的方法,所述方法包括:
采用內(nèi)存管理器件檢測指定棧是否發(fā)生棧溢出;
當(dāng)檢測到所述指定棧發(fā)生棧溢出時,由所述內(nèi)存管理器件觸發(fā)內(nèi)存訪問中斷。
優(yōu)選地,在所述采用所述內(nèi)存管理器件檢測指定棧是否發(fā)生棧溢出的步驟之前,還包括:
獲取所述指定棧的棧信息,所述棧信息包括所述指定棧的起始地址以及棧大小;
基于所述指定棧的起始地址以及棧大小,確定所述指定棧的棧底地址;
采用所述內(nèi)存管理器件,設(shè)置所述棧底地址的訪問權(quán)限。
優(yōu)選地,所述指定棧包括任務(wù)棧,所述獲取所述指定棧的棧信息的步驟包括:
當(dāng)檢測到所述任務(wù)棧進(jìn)行任務(wù)切換時,獲取所述任務(wù)棧的棧信息。
優(yōu)選地,所述指定棧包括中斷棧,所述獲取所述指定棧的棧信息的步驟包括:
從編譯鏈接腳本程序中獲取所述中斷棧的棧信息。
優(yōu)選地,所述采用所述內(nèi)存管理器件檢測指定棧是否發(fā)生棧溢出的步驟包括:
當(dāng)檢測到對棧底的訪問操作時,判定所述指定棧發(fā)生棧溢出。
優(yōu)選地,所述方法還包括:
獲取所述棧溢出對應(yīng)的上下文信息;
基于所述上下文信息,進(jìn)行棧溢出問題排查。
優(yōu)選地,所述內(nèi)存管理器件包括內(nèi)存保護(hù)單元MPU或內(nèi)存管理單元MMU。
本申請實(shí)施例還公開了一種棧溢出處理的裝置,所述裝置包括:
棧溢出檢測模塊,用于采用內(nèi)存管理器件檢測指定棧是否發(fā)生棧溢出;
中斷處理模塊,用于當(dāng)檢測到所述指定棧發(fā)生棧溢出時,由所述內(nèi)存管理器件觸發(fā)內(nèi)存訪問中斷。
優(yōu)選地,所述裝置還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710502695.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 一種擴(kuò)展同步內(nèi)存總線功能的方法和裝置
- 一種內(nèi)存訪問方法、裝置和系統(tǒng)
- 一種內(nèi)存監(jiān)控方法、內(nèi)存訪問控制器及SoC系統(tǒng)
- 內(nèi)存訪問方法及內(nèi)存控制器
- 一種內(nèi)存檢測方法、裝置、設(shè)備及存儲介質(zhì)
- 一種內(nèi)存訪問控制方法、裝置、內(nèi)存控制器及計(jì)算機(jī)系統(tǒng)
- 內(nèi)存訪問方法、內(nèi)存訪問控制器和片上系統(tǒng)
- 內(nèi)存訪問方法、內(nèi)存訪問控制器和片上系統(tǒng)
- SOC內(nèi)存訪問監(jiān)控方法、裝置和計(jì)算機(jī)設(shè)備
- 內(nèi)存訪問方法、微處理器、客戶端及計(jì)算機(jī)存儲介質(zhì)





