We describe a new approach to localize faults in concurrent programs, which is based on bounded model checking and sequentialization techniques. The main novelty is the idea of reproducing a faulty behavior, in a sequential version of a concurrent program. In order to pinpoint faulty lines, we analyze counterexamples generated by a model checker, to the new instrumented sequential program, and search for a diagnostic value, which corresponds to actual lines in a program. This approach is useful to improve debugging processes for concurrent programs, since it tells which line should be corrected and what values lead to a successful execution. We implemented this approach as a code-to-code transformation from concurrent into non-deterministic...
Abstract—Debugging techniques assist a developer in localizing and correcting faults in a system’s d...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
AbstractIf a program does not fulfill a given specification, a model checker delivers a counterexamp...
The design of concurrent programs is error-prone due to the interaction between concurrently executi...
Debugging, which entails locating program faults responsible for a program failure, is more difficul...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Fault localization is usually the most time-consuming step when debugging software bugs in general a...
Static program analyzers are increasingly effective in checking correctness properties of programs a...
Abstract. We propose a SAT-based bounded verification technique, called TCBMC, for threaded C progra...
Concurrency faults are difficult to reproduce and localize because they usually occur under specific...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
The ever-increasing parallelism in computer systems has made software more prone to concurrency fail...
The timed concurrent constraint language (tccp in short) is a concurrent logic language based on the...
Abstract. Writing multithreaded software for multicore computers con-fronts many developers with the...
Abstract—Debugging techniques assist a developer in localizing and correcting faults in a system’s d...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
AbstractIf a program does not fulfill a given specification, a model checker delivers a counterexamp...
The design of concurrent programs is error-prone due to the interaction between concurrently executi...
Debugging, which entails locating program faults responsible for a program failure, is more difficul...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Fault localization is usually the most time-consuming step when debugging software bugs in general a...
Static program analyzers are increasingly effective in checking correctness properties of programs a...
Abstract. We propose a SAT-based bounded verification technique, called TCBMC, for threaded C progra...
Concurrency faults are difficult to reproduce and localize because they usually occur under specific...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
The ever-increasing parallelism in computer systems has made software more prone to concurrency fail...
The timed concurrent constraint language (tccp in short) is a concurrent logic language based on the...
Abstract. Writing multithreaded software for multicore computers con-fronts many developers with the...
Abstract—Debugging techniques assist a developer in localizing and correcting faults in a system’s d...
Concurrency bugs are problems due to incorrect interleaving of parallel tasks. They are often caused...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...