Debugging multithreaded programs as if they were sequential

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

3 Scopus citations

Abstract

Debugging multithreaded software is challenging because the basic assumption that underlies sequential software debugging, i.e. the program behavior is deterministic under fixed inputs, is no longer valid due to the nondeterminism brought by thread scheduling. In this paper, we propose a proactive debugging method to restore this basic assumption so that programmers can debug multithreaded programs as if they were sequential. Our approach is based on the synergistic integration of a set of new symbolic analysis and dynamic analysis techniques. In particular, symbolic analysis is used to investigate the program behavior under multiple thread interleavings and then drive the dynamic execution to new branches. Dynamic analysis is used to execute these new branches and in turn guide the symbolic analysis further. The net effect of applying this feedback loop is a systematic and complete coverage of the program behavior under a fixed test input. We have implemented the proposed method in a software tool called Proactive-Debugger. Our experiments show that Proactive-Debugger outperforms both ESBMC and Maple, two state-of-the-art testing tools for detecting and reproducing bugs in multithreaded programs.

Original languageEnglish
Title of host publicationProceedings - 2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016
EditorsHe Jiang, Xin Peng
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages78-83
Number of pages6
ISBN (Electronic)9781509045174
DOIs
StatePublished - 9 Dec 2016
Event2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016 - Kunming, Yunnan, China
Duration: 3 Nov 20164 Nov 2016

Publication series

NameProceedings - 2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016

Conference

Conference2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016
Country/TerritoryChina
CityKunming, Yunnan
Period3/11/164/11/16

Keywords

  • Constraint solving
  • Debugging
  • Guided execution
  • Multithreaded programs
  • Symbolic analysis
  • Testing

Fingerprint

Dive into the research topics of 'Debugging multithreaded programs as if they were sequential'. Together they form a unique fingerprint.

Cite this