Abstract. Concurrent programs often exhibit bugs due to unintended interfer-ences among the concurrent threads. Such bugs are often hard to reproduce be-cause they typically happen under very specific interleaving of the executing threads. Basically, it is very hard to fix a bug (or software failure) in concur-rent programs without being able to reproduce it. In this paper, we present an approach, called ConCrash, that automatically and deterministically reproduces concurrent failures by recording logical thread schedule and generating unit tests. For a given bug (failure), ConCrash records the logical thread scheduling order and preserves object states in memory at runtime. Then, ConCrash reproduces the failure offline by simply using the ...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Fault localization is usually the most time-consuming step when debugging software bugs in general a...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
Multithreaded concurrent programs often exhibit bugs due to unintended interferences among the concu...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
Testing concurrent programs that accept data inputs is no-toriously hard because, besides the large ...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
Finding concurrency bugs in complex software is difficult. As a contribution to coping with this pro...
Abstract. Nowadays, multi-threaded programs are quite common and so are concurrency errors. Many wor...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
143 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2008.The third main contribution i...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
The Java programming language supports concurrency. Concurrent programs are hard to test due to thei...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Fault localization is usually the most time-consuming step when debugging software bugs in general a...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...
Multithreaded concurrent programs often exhibit bugs due to unintended interferences among the concu...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
Testing concurrent programs that accept data inputs is no-toriously hard because, besides the large ...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
Finding concurrency bugs in complex software is difficult. As a contribution to coping with this pro...
Abstract. Nowadays, multi-threaded programs are quite common and so are concurrency errors. Many wor...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
143 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2008.The third main contribution i...
A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives ...
The Java programming language supports concurrency. Concurrent programs are hard to test due to thei...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Fault localization is usually the most time-consuming step when debugging software bugs in general a...
As computing hardware moves to multi-core systems, future software needs to be parallelized in order...