@inproceedings{35371db508264281a4a7fd9683e95605,
title = "Debugging multithreaded programs as if they were sequential",
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.",
keywords = "Constraint solving, Debugging, Guided execution, Multithreaded programs, Symbolic analysis, Testing",
author = "Xiaodong Zhang and Zijiang Yang and Qinghua Zheng and Yu Hao and Pei Liu and Lechen Yu and Ming Fan and Ting Liu",
note = "Publisher Copyright: {\textcopyright} 2016 IEEE.; 2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016 ; Conference date: 03-11-2016 Through 04-11-2016",
year = "2016",
month = dec,
day = "9",
doi = "10.1109/SATE.2016.20",
language = "英语",
series = "Proceedings - 2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "78--83",
editor = "He Jiang and Xin Peng",
booktitle = "Proceedings - 2016 International Conference on Software Analysis, Testing and Evolution, SATE 2016",
}