We present Symbiosis: a concurrency debugging technique based on novel differential schedule projections (DSPs). A DSP shows the small set of memory operations and data-flows responsible for a failure, as well as a reordering of those elements that avoids the failure. To build a DSP, Symbiosis first generates a full, failing, multithreaded schedule via thread path profiling and symbolic con-straint solving. Symbiosis selectively reorders events in the failing schedule to produce a non-failing, alternate schedule. A DSP re-ports the ordering and data-flow differences between the failing and non-failing schedules. Our evaluation on buggy real-world software and benchmarks shows that, in practical time, Symbiosis generates DSPs that both isola...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
When confronted with a buggy execution of a distributed system—which are commonplacefor distributed ...
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps t...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Debugging, which entails locating program faults responsible for a program failure, is more difficul...
Multicore is here to stay. To keep up with the hardware innovation, software developers mustmove fro...
Abstract There are two main policies for scheduling thread-based concur-rent programs: preemptive sc...
Because debugging concurrent software failures is so challenging, there has been much interest in de...
Concurrency faults are one of the most damaging types of faults that can affect the dependability of...
Debugging concurrent programs is known to be difficult due to scheduling non-determinism. The techni...
The ever-increasing parallelism in computer systems has made software more prone to concurrency fail...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
Concurrency bug detection is important to guarantee the correct behavior of multithread programs. Ho...
Flow graphs provide an explicit description of the parallelization of an application by mapping vert...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
When confronted with a buggy execution of a distributed system—which are commonplacefor distributed ...
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps t...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Debugging, which entails locating program faults responsible for a program failure, is more difficul...
Multicore is here to stay. To keep up with the hardware innovation, software developers mustmove fro...
Abstract There are two main policies for scheduling thread-based concur-rent programs: preemptive sc...
Because debugging concurrent software failures is so challenging, there has been much interest in de...
Concurrency faults are one of the most damaging types of faults that can affect the dependability of...
Debugging concurrent programs is known to be difficult due to scheduling non-determinism. The techni...
The ever-increasing parallelism in computer systems has made software more prone to concurrency fail...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
Concurrency bug detection is important to guarantee the correct behavior of multithread programs. Ho...
Flow graphs provide an explicit description of the parallelization of an application by mapping vert...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
When confronted with a buggy execution of a distributed system—which are commonplacefor distributed ...
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps t...