版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、傳統(tǒng)的多線程程序引入了互斥鎖作為一種保護(hù)臨界區(qū)域的方式,然而,鎖的使用引入了新的錯(cuò)誤,例如得到鎖卻沒(méi)有釋放。鎖的誤用導(dǎo)致的錯(cuò)誤是非常常見且難以發(fā)現(xiàn)的。經(jīng)典的靜態(tài)代碼分析工具不用執(zhí)行源代碼程序就可以檢測(cè)軟件的錯(cuò)誤或缺陷,所以被越來(lái)越多的采用。用該類技術(shù)實(shí)現(xiàn)的死鎖分析工具一般通過(guò)遍歷源代碼,根據(jù)程序語(yǔ)句更新程序當(dāng)中所有鎖的狀態(tài),直到發(fā)現(xiàn)了導(dǎo)致死鎖的一個(gè)狀態(tài)。然而,由于缺少程序真正運(yùn)行時(shí)的信息,靜態(tài)分析會(huì)變得不精確。例如,程序當(dāng)中兩條相繼的l
2、ock指令是否會(huì)發(fā)生死鎖取決于它們是否是對(duì)同一把鎖進(jìn)行操作,也就是這兩把鎖是否屬于同一個(gè)鎖集。在沒(méi)有準(zhǔn)確信息的情況下,類似的工具只能做保守的估計(jì),導(dǎo)致大量的誤報(bào)。
如果考慮采用傳統(tǒng)的指針別名分析方法來(lái)進(jìn)行鎖集的識(shí)別,會(huì)存在兩個(gè)問(wèn)題。一方面如果采用比較精確的上下文敏感流敏感的分析方法,分析效率比較差;另一個(gè)方面,如果采用比較簡(jiǎn)單的上下文不敏感流不敏感的方法,則導(dǎo)致分析結(jié)果的不精確,原本屬于不同鎖集的鎖變量被判定為互為別名,使得后
3、續(xù)的靜態(tài)分析不能得到理想的結(jié)果。如何進(jìn)行效率和精度的最大化是一個(gè)比較關(guān)鍵的問(wèn)題。
本文通過(guò)基于指針別名分析技術(shù),針對(duì)鎖分析領(lǐng)域的典型問(wèn)題,實(shí)現(xiàn)一種識(shí)別不同鎖集合的技術(shù)來(lái)輔助靜態(tài)分析。能夠在靜態(tài)分析工具查詢鎖的指向信息時(shí)給出精確的結(jié)果,該結(jié)果必須和流敏感上下文敏感指針?lè)治龅木_度相當(dāng)。同時(shí)必須要解決分析的時(shí)間和空間效率問(wèn)題。針對(duì)以上需求,本文提出一種利用粗粒度指針?lè)治鲂畔?lái)指導(dǎo)后續(xù)分析的鎖集識(shí)別技術(shù),并且在此技術(shù)上開發(fā)了ELFI
4、工具。實(shí)驗(yàn)表明,對(duì)于大型程序,ELFI區(qū)分出的鎖集數(shù)量是傳統(tǒng)的Andersen指針?lè)治鏊惴ǖ?至6.6倍;并且經(jīng)過(guò)優(yōu)化的ELFI對(duì)于分析大程序平均有7.2倍的時(shí)間效率提升。
本文的主要貢獻(xiàn)有以下幾點(diǎn):
(1)根據(jù)鎖變量在程序當(dāng)中所占比例比較小這一事實(shí),提出采用靜態(tài)切片技術(shù)對(duì)源程序根據(jù)鎖變量進(jìn)行切片,以減少整個(gè)后續(xù)分析的工作量。對(duì)傳統(tǒng)的靜態(tài)切片方法進(jìn)行改進(jìn),針對(duì)指針?lè)治鰡?wèn)題,利用粗粒度指向關(guān)系圖的拓?fù)浣Y(jié)構(gòu)對(duì)相關(guān)指令進(jìn)行
5、切片。
(2)把整個(gè)分析過(guò)程劃分為兩個(gè)獨(dú)立的分析階段,第一階段實(shí)現(xiàn)了輕量級(jí)的Andersen分析算法,并且實(shí)現(xiàn)了線下線上優(yōu)化算法、API概括、內(nèi)存存儲(chǔ)優(yōu)化提高分析性能。構(gòu)建粗粒度的指針指向關(guān)系圖,利用分析結(jié)果構(gòu)建數(shù)據(jù)流依賴圖作為細(xì)粒度的指針?lè)治龅幕A(chǔ)。初步得到的鎖集用來(lái)作為靜態(tài)切片的準(zhǔn)則。
(3)在程序數(shù)據(jù)流依賴圖圖上,實(shí)現(xiàn)了上下文敏感、流敏感指針?lè)治?采用二分決策圖來(lái)表示內(nèi)存指向關(guān)系,以及上下文信息。優(yōu)化數(shù)據(jù)流依賴
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于數(shù)據(jù)流的指針別名分析.pdf
- C-C++語(yǔ)言程序切片中的指針別名分析.pdf
- Java程序維護(hù)中基于別名分析的錯(cuò)誤診斷技術(shù)與工具.pdf
- 基于二叉決策圖的別名分析研究.pdf
- 考慮指針別名的靜態(tài)分析技術(shù)研究.pdf
- 路徑敏感的跨過(guò)程別名分析的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基因集關(guān)聯(lián)分析工具.pdf
- ESP靜態(tài)鎖分析工具的Java實(shí)現(xiàn).pdf
- 基于自動(dòng)化靜態(tài)分析工具對(duì)鎖使用模式的研究.pdf
- 馮姓男孩改名分析過(guò)程
- 基于matlab的共集放大電路分析工具的設(shè)計(jì)開題報(bào)告
- 基于類型分析和指針?lè)治鲎R(shí)別源程序中的設(shè)計(jì)模式.pdf
- 基于抽象解釋的帶指針?biāo)阈g(shù)程序的分析方法.pdf
- 包姓男寶寶取名分析過(guò)程
- 中國(guó)大學(xué)的世界排名分析
- 基于包含的上下文敏感指針?lè)治黾夹g(shù)研究.pdf
- 基于視頻分析的智能水表指針運(yùn)動(dòng)檢測(cè)
- 指針典型例題分析與解答
- 代理盲簽名分析及一種改進(jìn).pdf
- 多線程并發(fā)程序分析及別名算法研究.pdf
評(píng)論
0/150
提交評(píng)論