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...

Full description

Bibliographic Details
Main Author: Chu, Justin
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