Debugging Multithreaded Programs as if They Were Sequential

被引:1
|
作者
Zhang, Xiaodong [1 ]
Yang, Zijiang [4 ]
Zheng, Qinghua [3 ]
Hao, Yu [3 ]
Liu, Pei [1 ]
Yu, Lechen [3 ]
Liu, Ting [2 ]
机构
[1] Xi An Jiao Tong Univ, Dept Comp Sci & Technol, Xian 710049, Shaanxi, Peoples R China
[2] Xi An Jiao Tong Univ, Syst Engn Inst, Xian 710049, Shaanxi, Peoples R China
[3] Xi An Jiao Tong Univ, Xian 710049, Shaanxi, Peoples R China
[4] Western Michgian Univ, Comp Sci, Kalamazoo, MI 49008 USA
来源
IEEE ACCESS | 2018年 / 6卷
基金
中国国家自然科学基金;
关键词
Testing; debugging; multithreaded programs; symbolic analysis; constraint solving; CONCURRENT PROGRAMS; SYMBOLIC EXECUTION; RACE DETECTION; BUGS;
D O I
10.1109/ACCESS.2018.2835672
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Debugging multithread programs is extremely difficult because the basic assumption that underlies sequential program debugging, that is, the program behavior is deterministic under a fixed input, is no longer valid due to the nondeterminism attributed to thread scheduling. It is because the programs behavior is non-deterministic due to the nondeterminism of parallel execution, which makes debugging or testing multithreaded programs extremely difficult. 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 symbolic analysis and dynamic analysis techniques. In particular, symbolic analysis investigates the program behavior under the same input to search whether there is a thread schedule would trigger a bug or a not-yet-explored path. Dynamic analysis is to execute these new paths with the guide of the generated thread schedules, thereby further guiding the symbolic analysis. The net effect of applying this feedback loop is a systematic and complete coverage of the program behavior under a fixed test input. We implement the proposed approach in a prototype tool called proactive-debugger. Our experiments show that proactive-debugger outperforms both ESBMC and Maple, which are two powerful and well-known testing tools for failure detection in multithreaded programs.
引用
收藏
页码:40024 / 40040
页数:17
相关论文
共 50 条
  • [1] Debugging Multithreaded Programs as if They Were Sequential
    Zhang, Xiaodong
    Yang, Zijiang
    Zheng, Qinghua
    Hao, Yu
    Liu, Pei
    Yu, Lechen
    Fan, Ming
    Liu, Ting
    [J]. 2016 INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, TESTING AND EVOLUTION (SATE 2016), 2016, : 78 - 83
  • [2] DEBUGGING MULTITHREADED PROGRAMS WITH MPD
    PONAMGI, MK
    HSEUSH, W
    KAISER, GE
    [J]. IEEE SOFTWARE, 1991, 8 (03) : 37 - 43
  • [3] Visual debugging of multithreaded Java programs
    Jackson, David
    [J]. 2001 IEEE Symposium on Human-Centric Computing, 2001, : 340 - 341
  • [4] Program Visualization for Debugging Deadlocks in Multithreaded Programs
    Kim, Byung-Chul
    Jun, Yong-Kee
    [J]. ADVANCES IN SOFTWARE ENGINEERING, 2010, 117 : 228 - 236
  • [5] Visual debugging of multithreaded Java']Java programs
    Jackson, D
    [J]. IEEE SYMPOSIA ON HUMAN-CENTRIC COMPUTING LANGUAGES AND ENVIRONMENTS, PROCEEDINGS, 2001, : 340 - 341
  • [6] Debugging and Visualization Techniques for Multithreaded Programs: A Survey
    Jyoti, Aman
    Arora, Vinay
    [J]. 2014 RECENT ADVANCES AND INNOVATIONS IN ENGINEERING (ICRAIE), 2014,
  • [7] Debugging multithreaded applications
    Horwood, P
    Wygodny, S
    Zardecki, M
    [J]. DR DOBBS JOURNAL, 2000, 25 (03): : 32 - +
  • [8] JRastro: A trace agent for debugging multithreaded and distributed Java']Java programs
    da Silva, GJ
    Schnorr, LM
    Stein, BD
    [J]. 15TH SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING, PROCEEDINGS, 2003, : 46 - 54
  • [9] Sequential debugging of parallel message passing programs
    Pedersen, JB
    Wagner, A
    [J]. CIC'2000: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS IN COMPUTING, 2000, : 55 - 61
  • [10] Using sequential debugging techniques with massively parallel programs
    Schaubschlaeger, Christian
    Kranzlmueller, Dieter
    Volkert, Jens
    [J]. COMPUTATIONAL SCIENCE - ICCS 2006, PT 2, PROCEEDINGS, 2006, 3992 : 557 - 564