2010
DOI: 10.1145/1735970.1736039
|View full text |Cite
|
Sign up to set email alerts
|

Analyzing multicore dumps to facilitate concurrency bug reproduction

Abstract: Debugging concurrent programs is difficult. This is primarily because the inherent non-determinism that arises because of scheduler interleavings makes it hard to easily reproduce bugs that may manifest only under certain interleavings. The problem is exacerbated in multi-core environments where there are multiple schedulers, one for each core. In this paper, we propose a reproduction technique for concurrent programs that execute on multi-core platforms. Our technique performs a lightweight analysis of a fail… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
11
0

Year Published

2011
2011
2017
2017

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 20 publications
(11 citation statements)
references
References 27 publications
0
11
0
Order By: Relevance
“…Recognizing this drawback, the search-based replaying techniques( [7], [19]- [23]) do not record the exact RWlinkage and, instead, rely on the post-recording search to construct a feasible interleaving. The search-based replay techniques can incur a very low recording overhead 1 at the cost of losing the replay determinism.…”
Section: Introductionmentioning
confidence: 99%
“…Recognizing this drawback, the search-based replaying techniques( [7], [19]- [23]) do not record the exact RWlinkage and, instead, rely on the post-recording search to construct a feasible interleaving. The search-based replay techniques can incur a very low recording overhead 1 at the cost of losing the replay determinism.…”
Section: Introductionmentioning
confidence: 99%
“…[31] analyzes multi-core dumps to reconstruct the thread schedule that caused a crash. Again, this assumes the program inputs are recorded, inducing overhead; however, RECORE does not handle concurrent programs at this point.…”
Section: A Reproducing Failuresmentioning
confidence: 99%
“…Much research work has been done to identify failure-triggering thread interleavings for inhouse testing [14,15] or for reproducing concurrency bugs that occur at the end-user side [16][17][18][19]. These approaches either provide a bug-triggering control to a runtime system, such as Valgrind or Pin, or they generate a whole program execution log, to ensure that a failure can be repeatedly reproduced for debugging.…”
Section: Task 1: Reproducing Failures Caused By Multithreading Bugsmentioning
confidence: 99%