CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS
Concurrency faults are difficult to reproduce and localize because they usually occur under specific inputs and thread interleavings. Most existing fault localization techniques focus on sequential programs but fail to identify faulty memory access patterns across threads, which are usually the root...
Main Author: | |
---|---|
Format: | Others |
Published: |
UKnowledge
2017
|
Subjects: | |
Online Access: | https://uknowledge.uky.edu/cs_etds/61 https://uknowledge.uky.edu/cgi/viewcontent.cgi?article=1065&context=cs_etds |
id |
ndltd-uky.edu-oai-uknowledge.uky.edu-cs_etds-1065 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-uky.edu-oai-uknowledge.uky.edu-cs_etds-10652019-10-16T04:28:25Z CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS Chu, Justin Concurrency faults are difficult to reproduce and localize because they usually occur under specific inputs and thread interleavings. Most existing fault localization techniques focus on sequential programs but fail to identify faulty memory access patterns across threads, which are usually the root causes of concurrency faults. Moreover, existing techniques for sequential programs cannot be adapted to identify faulty paths in concurrent programs. While concurrency fault localization techniques have been proposed to analyze passing and failing executions obtained from running a set of test cases to identify faulty access patterns, they primarily focus on using statistical analysis. We present a novel approach to fault localization using feature selection techniques from machine learning. Our insight is that the concurrency access patterns obtained from a large volume of coverage data generally constitute high dimensional data sets, yet existing statistical analysis techniques for fault localization are usually applied to low dimensional data sets. Each additional failing or passing run can provide more diverse information, which can help localize faulty concurrency access patterns in code. The patterns with maximum feature diversity information can point to the most suspicious pattern. We then apply data mining technique and identify the interleaving patterns that are occurred most frequently and provide the possible faulty paths. We also evaluate the effectiveness of fault localization using test suites generated from different test adequacy criteria. We have evaluated Cadeco on 10 real-world multi-threaded Java applications. Results indicate that Cadeco outperforms state-of-the-art approaches for localizing concurrency faults. 2017-01-01T08:00:00Z text application/pdf https://uknowledge.uky.edu/cs_etds/61 https://uknowledge.uky.edu/cgi/viewcontent.cgi?article=1065&context=cs_etds Theses and Dissertations--Computer Science UKnowledge Concurrent Program Fault Localization Debugging Machine Learning Data Mining Empirical Study Software Engineering |
collection |
NDLTD |
format |
Others
|
sources |
NDLTD |
topic |
Concurrent Program Fault Localization Debugging Machine Learning Data Mining Empirical Study Software Engineering |
spellingShingle |
Concurrent Program Fault Localization Debugging Machine Learning Data Mining Empirical Study Software Engineering Chu, Justin CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
description |
Concurrency faults are difficult to reproduce and localize because they usually occur under specific inputs and thread interleavings. Most existing fault localization techniques focus on sequential programs but fail to identify faulty memory access patterns across threads, which are usually the root causes of concurrency faults. Moreover, existing techniques for sequential programs cannot be adapted to identify faulty paths in concurrent programs. While concurrency fault localization techniques have been proposed to analyze passing and failing executions obtained from running a set of test cases to identify faulty access patterns, they primarily focus on using statistical analysis. We present a novel approach to fault localization using feature selection techniques from machine learning. Our insight is that the concurrency access patterns obtained from a large volume of coverage data generally constitute high dimensional data sets, yet existing statistical analysis techniques for fault localization are usually applied to low dimensional data sets. Each additional failing or passing run can provide more diverse information, which can help localize faulty concurrency access patterns in code. The patterns with maximum feature diversity information can point to the most suspicious pattern. We then apply data mining technique and identify the interleaving patterns that are occurred most frequently and provide the possible faulty paths. We also evaluate the effectiveness of fault localization using test suites generated from different test adequacy criteria. We have evaluated Cadeco on 10 real-world multi-threaded Java applications. Results indicate that Cadeco outperforms state-of-the-art approaches for localizing concurrency faults. |
author |
Chu, Justin |
author_facet |
Chu, Justin |
author_sort |
Chu, Justin |
title |
CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
title_short |
CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
title_full |
CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
title_fullStr |
CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
title_full_unstemmed |
CONTEXT-AWARE DEBUGGING FOR CONCURRENT PROGRAMS |
title_sort |
context-aware debugging for concurrent programs |
publisher |
UKnowledge |
publishDate |
2017 |
url |
https://uknowledge.uky.edu/cs_etds/61 https://uknowledge.uky.edu/cgi/viewcontent.cgi?article=1065&context=cs_etds |
work_keys_str_mv |
AT chujustin contextawaredebuggingforconcurrentprograms |
_version_ |
1719269329091952640 |