[發(fā)明專利]防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710799875.6 | 申請(qǐng)日: | 2017-09-07 |
| 公開(kāi)(公告)號(hào): | CN107665113B | 公開(kāi)(公告)日: | 2020-12-04 |
| 發(fā)明(設(shè)計(jì))人: | 柳星瑞 | 申請(qǐng)(專利權(quán))人: | 廣東博立科技有限公司 |
| 主分類號(hào): | G06F8/30 | 分類號(hào): | G06F8/30 |
| 代理公司: | 廈門(mén)市新華專利商標(biāo)代理有限公司 35203 | 代理人: | 徐勛夫 |
| 地址: | 523000 廣東省東莞*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 程序 指針 系統(tǒng) 崩潰 軟件 方法 | ||
1.一種防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法,其特征在于,包括以下步驟:
(1)提供程序:程序結(jié)構(gòu)包括有多層子程序;
(2)程序訪問(wèn):程序每進(jìn)一級(jí)子程序都要記住上一級(jí)入口地址、及本子程序入口地址,也就是建立NestCallStage數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的每個(gè)結(jié)點(diǎn),隨著嵌套子程序的層層遞進(jìn),NestCallStage數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的每個(gè)單元會(huì)形成每個(gè)層級(jí)子程序的前層子程序入口地址、當(dāng)前層入口地址、下一層子程序入口地址;
(3)路徑回查和程序執(zhí)行:當(dāng)執(zhí)行層級(jí)內(nèi)子程序具體內(nèi)容前,要逐級(jí)向上核查:上一層的next指針,就是下一層的last指針,一直核查到程序的復(fù)位處地址,這樣都正確后,再執(zhí)行子程序內(nèi)的內(nèi)容;若不正確,說(shuō)明指針混亂,則把程序強(qiáng)行復(fù)位、避免錯(cuò)誤執(zhí)行;
(4)程序退出:程序執(zhí)行完畢后,開(kāi)始逐級(jí)釋放NestCallStage數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)之每個(gè)結(jié)點(diǎn),把之前的各層子程序結(jié)點(diǎn)地址逐個(gè)回檢,原路返回。
2.根據(jù)權(quán)利要求1中所述防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法,其特征在于:步驟(1)中,程序訪問(wèn)層級(jí)的數(shù)據(jù)結(jié)構(gòu)如下:
(1.1)定義:NestedNumber嵌套級(jí)數(shù)
(1.2)定義:子程序標(biāo)識(shí)
(1.3)定義:頭指針的next指向NULL,頭指針是main
(1.4)定義:尾指針的last指向NULL, 尾指針最終是指向?qū)慐EPROM的子程序或執(zhí)行關(guān)鍵行為的子程序
(1.5)定義:最大分配數(shù)據(jù)結(jié)構(gòu)的內(nèi)存空間長(zhǎng)度視程序嵌套基數(shù)而定。
3.根據(jù)權(quán)利要求1中所述防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法,其特征在于:步驟(2)中,建立結(jié)點(diǎn)的步驟如下:
(2.1)建立結(jié)點(diǎn)
(2.2)結(jié)點(diǎn)指針然后加一,先在結(jié)點(diǎn)中放置數(shù)據(jù)
(2.3)要考慮取模運(yùn)算,防止NestedNumber超出范圍波及修改其他內(nèi)存地址
(2.4)嵌套結(jié)點(diǎn)自動(dòng)下移
(2.5)給上級(jí)結(jié)點(diǎn)‘next指針’賦值
(2.6)賦值當(dāng)前結(jié)點(diǎn)嵌套級(jí)數(shù)
(2.7)賦值當(dāng)前結(jié)點(diǎn)嵌套‘子程序標(biāo)識(shí)’
(2.8)賦值當(dāng)前結(jié)點(diǎn)的上級(jí)‘子程序標(biāo)識(shí)’
(2.9)每次當(dāng)前結(jié)點(diǎn)的next指針為空,這個(gè)地址由下級(jí)結(jié)點(diǎn)來(lái)填寫(xiě)
(2.10)完成當(dāng)前節(jié)點(diǎn)修正,否則不能生成結(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1中所述防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法,其特征在于:步驟(4)中,釋放結(jié)點(diǎn)的步驟如下:
(4.1)釋放結(jié)點(diǎn),恢復(fù)上一結(jié)點(diǎn)相關(guān)信息
(4.2)第一級(jí) main()函數(shù)不用再釋放結(jié)點(diǎn)
(4.3)取模運(yùn)算主要考慮防止NestedNumber超出范圍波及修改其他內(nèi)存地址
(4.4)跟建立結(jié)點(diǎn)反著進(jìn)行
(4.5)清當(dāng)前結(jié)點(diǎn)‘嵌套級(jí)數(shù)’
(4.6)清當(dāng)前結(jié)點(diǎn)‘子程序標(biāo)識(shí)’
(4.7)恢復(fù)上一級(jí)結(jié)點(diǎn)‘嵌套子程序標(biāo)識(shí)’
(4.8)嵌套級(jí)數(shù)自動(dòng)上移
(4.9)清上級(jí)結(jié)點(diǎn)的next指針。
5.根據(jù)權(quán)利要求1中所述防程序因指針跑飛而令程序系統(tǒng)崩潰的軟件方法,其特征在于:步驟(3)中,路徑回查的步驟包括
(3.1)定義程序名稱:過(guò)程控制環(huán)節(jié)-中心入口處理-核心軟件
(3.2)給識(shí)別嵌套子程序號(hào)碼臨時(shí)的存儲(chǔ)單元,為程序處理用
(3.3)假如是終結(jié)點(diǎn),且結(jié)點(diǎn)級(jí)數(shù)不為0,嵌套級(jí)數(shù) = 2,開(kāi)始逐級(jí)向上回歸核查
(3.4)找到上級(jí)ID
(3.5)last指針已經(jīng)合格
(3.6)檢測(cè)next 指針
(3.7)進(jìn)入下一個(gè)指針
(3.8)到達(dá)當(dāng)前指針,且next指向NULL,正向、逆向路徑符合要求。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東博立科技有限公司,未經(jīng)廣東博立科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710799875.6/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開(kāi)發(fā)支持裝置、程序開(kāi)發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 瀏覽器崩潰信息的處理方法及系統(tǒng)
- 一種對(duì)瀏覽器崩潰進(jìn)行預(yù)警的方法和系統(tǒng)
- 應(yīng)用軟件進(jìn)行崩潰處理的方法及進(jìn)行崩潰處理的瀏覽器
- 一種崩潰信息的處理方法及裝置
- 用于對(duì)應(yīng)用程序的重復(fù)崩潰進(jìn)行檢測(cè)的裝置和方法
- 應(yīng)用崩潰處理方法及移動(dòng)終端
- 崩潰診斷信息收集方法、系統(tǒng)及電子設(shè)備
- 崩潰信息的處理方法、系統(tǒng)、車(chē)載設(shè)備、服務(wù)器、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種崩潰信息處理方法、裝置、設(shè)備及介質(zhì)
- 應(yīng)用程序崩潰處理方法和裝置





