日韩在线一区二区三区,日本午夜一区二区三区,国产伦精品一区二区三区四区视频,欧美日韩在线观看视频一区二区三区 ,一区二区视频在线,国产精品18久久久久久首页狼,日本天堂在线观看视频,综合av一区

[發明專利]數組越界錯誤的自動檢測和校正方法有效

專利信息
申請號: 201410022323.0 申請日: 2014-01-17
公開(公告)號: CN103778061A 公開(公告)日: 2014-05-07
發明(設計)人: 陳哲;李文明;黃志球 申請(專利權)人: 南京航空航天大學
主分類號: G06F11/36 分類號: G06F11/36
代理公司: 南京經緯專利商標代理有限公司 32200 代理人: 朱小兵;劉謙
地址: 210016 江*** 國省代碼: 江蘇;32
權利要求書: 查看更多 說明書: 查看更多
摘要:
搜索關鍵詞: 數組 越界 錯誤 自動檢測 校正 方法
【權利要求書】:

1.一種數組越界錯誤的自動檢測和校正方法,其特征在于,包括:

步驟1、選擇待變換的源代碼項目目錄,或者單個源代碼文件;

步驟2、針對待變換的源代碼,利用編譯器生成源代碼的符號表和抽象語法樹;

步驟3、遍歷抽象語法樹中的所有結點,構造指針依賴圖,并進行源代碼變換計算,其中:所述指針依賴圖是一個有向圖二元組,所述有向圖二元組包括源代碼中的指針集合和源代碼中的指針依賴關系集合,所述源代碼中的指針集合構成指針依賴圖中的結點集合,所述源代碼中的指針依賴關系集合構成指針依賴圖中的有向邊集合;

步驟4、根據步驟3的計算結果,在源代碼中將需替換的部分源代碼進行替換,生成變換后的源代碼,并保存到新項目目錄或新文件;

步驟5、定義數組越界檢測策略和校正策略,并將這些策略轉化為函數__MNT_CHK_AAV的定義,將按照策略生成的函數__MNT_CHK_AAV的定義寫入變換后源代碼的開頭部分;

步驟6、將變換后的項目目錄或文件用原編譯器進行編譯,生成目標系統上的可執行文件;

步驟7、將生成的可執行文件部署到目標系統并運行,當可執行文件運行到已替換或插入的代碼段時,將自動檢測和校正數組越界錯誤,并準確報告錯誤對應的源代碼位置。

2.如權利要求1所述的數組越界錯誤的自動檢測和校正方法,其特征在于,所述遍歷抽象語法樹中的所有結點,構造指針依賴圖,并進行源代碼變換計算,進一步包括:

在遍歷抽象語法樹的過程中,根據當前遍歷到的結點s的類型進行如下操作之一:

向指針依賴圖中加入指針依賴關系,

將數組下標訪問表達式和指針訪問表達式替換為__MNT_CHK_AAV函數的調用,

將函數聲明、函數定義、函數調用表達式替換為新的表達式。

3.如權利要求1所述的數組越界錯誤的自動檢測和校正方法,其特征在于,所述在遍歷抽象語法樹的過程中,根據當前遍歷到的結點s的類型進行如下操作之一:向指針依賴圖中加入指針依賴關系,將數組下標訪問表達式和指針訪問表達式替換為__MNT_CHK_AAV函數的調用,將函數聲明、函數定義、函數調用表達式替換為新的表達式,進一步包括:

在遍歷抽象語法樹的過程中,對于當前遍歷到的結點s,得到其所在的源文件名filename和代碼行號loc,并根據當前遍歷到的結點s的類型分別進行如下操作:

操作1、如果結點s是一個帶初始值的指針聲明type*p=expr,其中p為指針名,expr為表達式,且expr中包含一個支配指針q,則將指針對(p,q)作為一條邊加入指針依賴圖;

操作2、如果結點s是一個指針賦值表達式p=expr,其中p為指針名,expr為表達式,且expr中包含一個支配指針q,則將(p,q)作為一條邊加入指針依賴圖;

操作3、如果結點s是一個數組下標表達式p[expr],其中p為指針名或數組名,expr為表達式,則根據p的類型分別進行如下操作:

操作31、如果p是符號表中已定義的一個數組,則從符號表中獲取該數組的類型type和長度len,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHECK_AAV(p+expr,p,p+len,filename,loc)))

其中,函數參數p+expr表示數組下標表達式訪問的內存地址,函數參數p表示數組的起始地址,函數參數p+len表示數組的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作32、如果p是所在函數聲明的第n個形式參數,則從符號表中獲取該指針的類型type,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHK_AAV(p+expr,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,filename,loc)))

其中,函數參數p+expr表示數組下標表達式訪問的內存地址,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作33、如果p是不滿足以上操作31、操作32中的兩種情況的指針,則從指針依賴圖中獲取其最終依賴指針q,如果q不存在,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯,如果q存在,則根據q的類型分別進行如下操作:

操作331、如果q是符號表中已定義的一個數組,則從符號表中獲取指針p的類型type和數組q的長度len,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHECK_AAV(p+expr,q,q+len,filename,loc)))

其中,函數參數p+expr表示數組下標表達式訪問的內存地址,函數參數q表示數組的起始地址,函數參數q+len表示數組的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作332、如果q是所在函數聲明的第n個形式參數,則從符號表中獲取指針p的類型type,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHK_AAV(p+expr,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,filename,loc)))

其中,函數參數p+expr表示數組下標表達式訪問的內存地址,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作333、如果q是不滿足以上操作331、操作332中的兩種情況的指針,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯;

操作4、如果結點s是一個指針訪問表達式*expr,其中expr為表達式,且expr中包含一個支配指針p,則根據p的類型分別進行如下操作:

操作41、如果p是符號表中已定義的一個數組,則從符號表中獲取該數組的類型type和長度len,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHECK_AAV(expr,p,p+len,filename,loc)))

其中,函數參數expr表示指針訪問表達式訪問的內存地址,函數參數p表示數組的起始地址,函數參數p+len表示數組的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作42、如果p是所在函數聲明的第n個形式參數,則從符號表中獲取該指針的類型type,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHK_AAV(expr,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,filename,loc)))

其中,函數參數expr表示指針訪問表達式訪問的內存地址,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作43、如果p是不滿足以上操作41、操作42中的兩種情況的指針,則從指針依賴圖中獲取其最終依賴指針q,如果q不存在,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯,如果q存在,則根據q的類型分別進行如下操作:

操作431、如果q是符號表中已定義的一個數組,則從符號表中獲取指針p的類型type和數組q的長度len,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHECK_AAV(expr,q,q+len,filename,loc)))

其中,函數參數expr表示指針訪問表達式訪問的內存地址,函數參數q表示數組的起始地址,函數參數q+len表示數組的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作432、如果q是所在函數聲明的第n個形式參數,則從符號表中獲取指針p的類型type,然后將該表達式替換為如下函數調用:

*((type*)(__MNT_CHK_AAV(expr,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,filename,loc)))

其中,函數參數expr表示指針訪問表達式訪問的內存地址,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址,函數參數filename表示源文件名,函數參數loc表示代碼行號;

操作433、如果q是不滿足以上操作431、操作432中的兩種情況的指針,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯;

操作5、如果結點s是一個函數聲明或函數定義表達式type?func(…,type_nexpr_n,…),其中:第n個參數表達式expr_n為type_n類型的數組或指針聲明p,省略號…表示其它參數表達式,則將該函數聲明或函數定義替換為如下函數:

type?func(…,type_n?expr_n,void*__MNT_CHK_AAV_B_n,void*__MNT_CHK_AAV_E_n,…)

其中,省略號…表示原來的所有參數表達式,函數參數__MNT_CHK_AAV_B_n表示第n個參數表達式的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個參數表達式的結束地址;

操作6、如果結點s是一個函數調用表達式func(…,expr_n,…),其中:第n個參數表達式expr_n中包含一個支配指針p,省略號…表示其它參數表達式,則根據p的類型分別進行如下操作:

操作61、如果p是符號表中已定義的一個數組,則從符號表中獲取該數組的長度len,然后將該表達式替換為如下函數調用:func(…,expr_n,p,p+len,…),其中,省略號…表示原來的所有參數表達式,函數參數p表示數組的起始地址,函數參數p+len表示數組的結束地址;

操作62、如果p是所在函數聲明的第n個形式參數,則將該表達式替換為如下函數調用:

func(…,expr_n,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,…)

其中,省略號…表示原來的所有參數表達式,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址;

操作63、如果p是不滿足以上操作61、操作62中的兩種情況的指針,則從指針依賴圖中獲取其最終依賴指針q,如果q不存在,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯,如果q存在,則根據q的類型分別進行如下操作:

操作631、如果q是符號表中已定義的一個數組,則從符號表中獲取數組q的長度len,然后將該表達式替換為如下函數調用:func(…,expr_n,q,q+len,…),其中,省略號…表示原來的所有參數表達式,函數參數q表示數組的起始地址,函數參數q+len表示數組的結束地址;

操作632、如果q是所在函數聲明的第n個形式參數,則將該表達式替換為如下函數調用:

func(…,expr_n,__MNT_CHK_AAV_B_n,__MNT_CHK_AAV_E_n,…)

其中,省略號…表示原來的所有參數表達式,函數參數__MNT_CHK_AAV_B_n表示第n個形式參數的起始地址,函數參數__MNT_CHK_AAV_E_n表示第n個形式參數的結束地址;

操作633、如果q是不滿足以上操作631、操作632中的兩種情況的指針,則認為源代碼中存在指針使用前未賦初值的錯誤,并報錯。

下載完整專利技術內容需要扣除積分,VIP會員可以免費下載。

該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服

本文鏈接:http://www.szxzyx.cn/pat/books/201410022323.0/1.html,轉載請聲明來源鉆瓜專利網。

×

專利文獻下載

說明:

1、專利原文基于中國國家知識產權局專利說明書;

2、支持發明專利 、實用新型專利、外觀設計專利(升級中);

3、專利數據每周兩次同步更新,支持Adobe PDF格式;

4、內容包括專利技術的結構示意圖流程工藝圖技術構造圖

5、已全新升級為極速版,下載速度顯著提升!歡迎使用!

請您登陸后,進行下載,點擊【登陸】 【注冊】

關于我們 尋求報道 投稿須知 廣告合作 版權聲明 網站地圖 友情鏈接 企業標識 聯系我們

鉆瓜專利網在線咨詢

周一至周五 9:00-18:00

咨詢在線客服咨詢在線客服
tel code back_top
主站蜘蛛池模板: 九九国产精品视频| 欧美人妖一区二区三区| 午夜伦全在线观看| 人人玩人人添人人澡97| 精品无人国产偷自产在线| 久久国产精品久久久久久电车| 国产精品视频99| 一色桃子av大全在线播放| 狠狠躁天天躁又黄又爽| 日韩一区高清| 狠狠躁夜夜| 国产午夜一级一片免费播放| 欧美久久精品一级c片| 欧美日韩一区二区三区在线播放 | 国产一区二区视频免费在线观看| 国产激情视频一区二区| 国产精品国产三级国产专播精品人 | 精品一区中文字幕| 欧美hdxxxx| 中文字幕在线乱码不卡二区区| 国产91清纯白嫩初高中在线观看| av国产精品毛片一区二区小说| 韩漫无遮韩漫免费网址肉| 免费看欧美中韩毛片影院| 538国产精品一区二区在线| 日韩亚洲精品视频| 99精品免费在线视频| 欧美激情精品久久久久久免费 | 岛国黄色av| 一区二区国产盗摄色噜噜| 欧美精品中文字幕在线观看| 欧美日韩精品影院| 午夜伦理片在线观看| 黄色av免费| 欧美在线视频二区| 亚洲精品一区二区三区98年| 91一区在线观看| 国产精品久久久麻豆| 26uuu亚洲国产精品| 久久精品国产99| 一区二区中文字幕在线| 久久久久国产亚洲| 亚洲精品日本无v一区| 一区二区三区国产欧美| 国产精华一区二区精华| 国偷自产一区二区三区在线观看| 日韩夜精品精品免费观看| 国产精品一二三区视频网站| 精品香蕉一区二区三区| 91视频国产一区| 国产女人和拘做受在线视频| 国产1区2区视频| 亚洲欧美一二三| 欧美性xxxxx极品少妇| 国产精品日韩视频| 久久乐国产精品| 日韩欧美国产第一页| 午夜欧美a级理论片915影院| 激情久久久久久| 国产一区二区视频在线| 国产欧美日韩精品一区二区三区 | 久久精品色欧美aⅴ一区二区| 久久精品综合| 国内精品久久久久影院日本| 一区二区免费播放| 精品国产1区2区3区| 日韩av在线免费电影| 国产精品一区不卡| 国产日产高清欧美一区二区三区 | **毛片在线免费观看| 91久久国产露脸精品国产| 国产精品精品视频一区二区三区| 国产电影精品一区二区三区| 国产免费区| 国产精品理人伦一区二区三区| 91精品国产九九九久久久亚洲| 躁躁躁日日躁网站| 91视频一区二区三区| 婷婷午夜影院| 97人人模人人爽人人喊0| 99久久精品免费视频| 一区二区三区欧美精品| 国产精品国产三级国产播12软件| 欧美日韩乱码| 日韩国产精品久久| 2021天天干夜夜爽| 国产极品美女高潮无套久久久| 欧美3p激情一区二区三区猛视频| 又黄又爽又刺激久久久久亚洲精品| 国产精品免费一区二区区| 国产日韩欧美中文字幕| 欧美精品久| 欧美一区二区三区久久| 国产一级自拍| 亚洲一区二区福利视频| 国产一区二区资源| 久久精品国产精品亚洲红杏| 国产乱子伦农村xxxx| 狠狠色噜噜狠狠狠色综合| 91国内精品白嫩初高生| 夜色av网| 国产真实一区二区三区| 精品国产乱码久久久久久老虎| 日韩精品久久久久久久酒店| 国产99久久久久久免费看| 欧美一区二粉嫩精品国产一线天| 久久综合伊人77777麻豆| 日本午夜久久| 欧美乱大交xxxxx| 久久九九亚洲| 国产一级精品在线观看| 国产69精品久久777的优势| 中文字幕日韩有码| 热re99久久精品国99热蜜月| 精品无码久久久久国产| www.日本一区| 日韩欧美视频一区二区| 强制中出し~大桥未久在线播放 | 日韩一区二区中文字幕| 欧美精品二区三区| 欧美高清xxxxx| 亚洲精品一区二区三区98年| 欧美日韩三区二区| 欧美人妖一区二区三区| xxxxx色| 欧美午夜一区二区三区精美视频| 一区二区三区四区国产| 国产偷亚洲偷欧美偷精品| 午夜剧场一区| 国产精品一区二区日韩新区| 日韩av在线播| 狠狠插影院| 色综合久久精品| 一区不卡av| 国产精品日产欧美久久久久| 爽妇色啪网| 欧美一区二区激情三区| 精品国产一区二区三区在线| 日韩精品一区在线观看| 91国偷自产中文字幕婷婷| 17c国产精品一区二区| 欧美一区二区三区在线免费观看| 国产97久久| 91婷婷精品国产综合久久| 一区二区久久久久| 欧美精品二区三区| 国产伦高清一区二区三区| 91黄在线看| 国产一区免费播放| 国产精品久久人人做人人爽| 97精品国产97久久久久久免费| 国产91清纯白嫩初高中在线观看| 高清欧美精品xxxxx在线看| 欧美日韩一级在线观看| 高清欧美精品xxxxx在线看| 欧美一区二区综合| 亲子乱子伦xxxx| 久久精品欧美一区二区| 国产大学生呻吟对白精彩在线| 午夜爽爽视频| 国产精品suv一区二区6| 99国产精品久久久久| 91麻豆精品国产91久久久资源速度| 国产一区二区国产| 国产69精品久久久久按摩| 欧美日韩高清一区二区| 国产精品一品二区三区四区五区| 亚洲一二三四区| 欧美日韩国产一区在线| 国产欧美综合一区| 日韩精品一区二区中文字幕| 亚洲精品日韩精品| 亚洲精品卡一| 少妇中文字幕乱码亚洲影视| 亚洲精品乱码久久久久久按摩| 国产精品久久久久久久久久久杏吧| 午夜精品一区二区三区三上悠亚| 久久久久久久亚洲国产精品87| 欧美一区二区三区久久综合| 国产精品国精产品一二三区| 午夜伦情电午夜伦情电影| 国产乱淫精品一区二区三区毛片| 99久久精品免费视频| 国产一区二区视频在线| 国产日韩一区在线| 2023国产精品久久久精品双| 国产高清不卡一区| 国产欧美性| 91精品第一页| 亚洲欧美一区二区三区三高潮| 亚洲精品久久久久中文字幕欢迎你| 欧美一区二区三区四区夜夜大片| 国产精品久久人人做人人爽| 欧美乱妇在线观看| 久久91精品国产91久久久| 精品久久久久久中文字幕| 亚洲一卡二卡在线| 天干天干天干夜夜爽av| 日韩欧美亚洲视频| 国产精品一区二区中文字幕| 日本少妇一区二区三区| 亚洲精品乱码久久久久久按摩| **毛片免费| 国产第一区在线观看| 国产亚洲精品久久久久久久久动漫| 亚洲1区2区3区4区| 国产1区在线观看| 鲁丝一区二区三区免费| 午夜av电影网| 538国产精品一区二区在线| 欧美精品五区| 日韩精品久久一区二区三区| 91精品国产综合久久国产大片| 久久精品国语| 午夜剧场a级片| 欧洲国产一区| 一区二区三区免费高清视频| 欧美日韩乱码| 性生交大片免费看潘金莲| 久久国产欧美一区二区三区精品| 日韩av在线电影网| 久久夜靖品2区| 久久99精| 99热久久这里只精品国产www| 国产精品高潮呻| 亚洲精品丝袜| 99视频一区| 久久国产精品精品国产| 国产精品色婷婷99久久精品| 国产精品一区二| 四虎国产精品久久| 日韩免费一级视频| 欧美激情在线免费| 神马久久av| 日韩一区高清| 偷拍自中文字av在线| 97人人澡人人添人人爽超碰| 大bbw大bbw巨大bbw看看 | 国产一区在线免费观看| 999久久国精品免费观看网站| 国产91九色在线播放| 欧美一区二区三区爽大粗免费 | 毛片大全免费看| 欧美一级久久久| 午夜在线看片| 欧美一区二区三区日本|