Font Size: a A A

Research Of Multi-threaded Software Fault Localization Based On Delta-Debugging

Posted on:2019-01-06Degree:MasterType:Thesis
Country:ChinaCandidate:H J FuFull Text:PDF
GTID:2428330593951072Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Currently,concurrent programs are becoming increasingly widespread to meet the demands of the rapid development of multi-core hardware.However,out of the inherent non-determinism between thread scheduling,multi-threaded programs are more likely to suffer from concurrency bugs.As a result,it is of great importance and challenges to guarantee the correctness of concurrent programs.It usually takes a lot of time and effort for programmers to identify the code that causes concurrency bugs and the root cause of bugs.In this work,we extend the Delta Debugging algorithm and based on the abstraction for the execution of the test case with a particular scheduling,then we propose an approach to automatically localize the multi-threaded bugs and identify the root cause for them.Our core idea is to find the minimum failure-inducing memory access patterns,consequently we can realize the goal of localizing and analyzing accurately.First,given a test case,we record the thread scheduling at each step during the test execution.Then we abstract the test execution in term of its memory access patterns and identify the closest failing and passing test executions in terms of their differences.Second,according to the difference set of the failing and passing test,we apply Delta Debugging algorithm and use Java Pathfinder to actively break certain memory access patterns in order to check whether they are failure-inducing.Since the memory access patterns are often correlated in multi-threaded programs,it is non-trivial to apply Delta Debugging in our setting.For multi-threaded program thread scheduling,we provide a new function called test(U,f)to do.Finally,we conduct our empirical study on 26 bugs selected from SIR.By comparing with other classical methods,the experimental results show that our method can effectively give a small number of memory access patterns relevant to the bug.Moreover,by combining with other classical methods,we find that our method can be used to improve existing fault localization methods significantly.
Keywords/Search Tags:Multi-threaded Faults, Automatic Fault detection, DeltaDebugging, Memory Access Patterns
PDF Full Text Request
Related items