|
English
|
正體中文
|
简体中文
|
全文筆數/總筆數 : 80990/80990 (100%)
造訪人次 : 41644544
線上人數 : 1135
|
|
|
資料載入中.....
|
請使用永久網址來引用或連結此文件:
http://ir.lib.ncu.edu.tw/handle/987654321/72016
|
題名: | A Testing and Debugging Tool for Arbitrary Interleaving on Multithreaded Programs Based on Debugger |
作者: | 楊權;Yang,Chuan |
貢獻者: | 資訊工程學系 |
關鍵詞: | 多執行緒;並行錯誤;除錯;測試;multi-thread;concurrency error;debugging;testing |
日期: | 2016-07-01 |
上傳時間: | 2016-10-13 14:21:43 (UTC+8) |
出版者: | 國立中央大學 |
摘要: | 多執行緒程式在現今的軟體開發過程中幾乎難以避免,但如何設計出沒有錯誤的多執行緒程式,對開發者來說仍是一個困難的挑戰。因為多執行緒間的concurrency所引入的微妙錯誤往往需要特定的輸入及interleaving才能引發,這種nondeterminism讓引發與重現這種錯誤變得困難,進而導致了多執行緒程式不易測試與除錯的特性。 在除錯方面,儘管debugger是開發者用來除錯程式的主要工具,現有的debugger卻沒有針對重現interleaving的需求設計對應的功能。而測試concurrency error的研究雖然陸續有提出演算法及工具,來有效地探索interleaving空間以找出concurrency error,但其工具的使用往往受限於某些條件,例如相依於特定作業系統或高階語言虛擬機器,甚至必須動用昂貴的靜態分析技術。 本研究開發了一個具有彈性的多執行緒的interleaving的測試與除錯工具,並且只依賴debugger來提供所需的interleaving控制能力。在除錯上,本工具藉由提供可重現任意的interleaving的能力,來支援開發者進行除錯。在測試上,則可以系統性地探索interleaving空間,並可利用heuristic提高測試效率。此外,本工具也針對常見的兩種synchronization intention violation-atomicity violation、order violation-提供開發者設置assertion的功能,做為一種判斷程式如預期執行的測試準則(test oracle),讓開發者能夠從更多的面向檢驗程式的行為,以增加提早發現concurrency error的機會,降低後續除錯的難度。最後,由於本工具是基於debugger framework進行設計,因此更容易移植到新的除錯器上以支援更多程式語言。;Applying multithreading techniques is an inevitable trend in software development nowadays. However, writing correct multi-threaded programs remains a difficult challenge to most of developers in practice, due to the lack of debugging and testing support from tools. Such nondeterminism has seriously hindered the reproduction of concurrency errors, making debugging and testing a concurrent program a difficult task in practice. Although the primary tool for fixing a bug is a debugger, debugging support for multi-threaded program is poorly provided by existing debuggers. On the other hand, solutions provided by previous researches often suffer from different kinds of assumptions and limitations. These limitations and assumptions are, O.S., high-level programming language, virtual machine dependency, or the programming language dependency for costly static analysis In this paper, a flexible debugging and testing tool is proposed. First of all, This tool helps programmers on testing and debugging concurrency errors by providing the capability of reproducing and generating arbitrary interleavings. Where interleaving space can be reduced by heuristics, including bounding the locations of context switches and using thread pairwise testing. In addition, assertions for two common synchronization intentions, atomicity and order, are provided to help developers detecting concurrency errors from a different perspective, which offer an additional opportunity to make debugging easier by reducing the distance between the execution of the concurrency error and its manifestation. Finally, this approach is protentially easy to port to other debuggers to support more programming languages. |
顯示於類別: | [資訊工程研究所] 博碩士論文
|
文件中的檔案:
檔案 |
描述 |
大小 | 格式 | 瀏覽次數 |
index.html | | 0Kb | HTML | 144 | 檢視/開啟 |
|
在NCUIR中所有的資料項目都受到原著作權保護.
|
::: Copyright National Central University. | 國立中央大學圖書館版權所有 | 收藏本站 | 設為首頁 | 最佳瀏覽畫面: 1024*768 | 建站日期:8-24-2009 :::