When debugging bugs, programmers often prepare test cases to reproduce buggy behaviours. However, for concurrent programs, test cases alone are typically insufficient to reproduce buggy behaviours, due to the nondeterminism of multi-threaded executions. In literature, various approaches have been proposed to reproduce buggy behaviours for concurrency bugs deterministically, but to the best of our knowledge, they are still limited. In particular, we have recognized three debugging scenarios from programming practice, but existing approaches can handle only one of the scenarios. In this paper, we propose a novel approach, called SPDebugger, that provides finer-grained thread controlling over test cases, programs under test, and even third party library code, to reproduce the predesigned thread execution schedule. The evaluation shows that SPDebugger handles more debugging scenarios than the state-of-the-art tool, called IMUnit, with similar human effort.
Ziyi LIN
Shanghai Jiao Tong University
Yilei ZHOU
Shanghai Jiao Tong University
Hao ZHONG
Shanghai Jiao Tong University
Yuting CHEN
Shanghai Jiao Tong University
Haibo YU
Shanghai Jiao Tong University
Jianjun ZHAO
Kyushu University
The copyright of the original papers published on this site belongs to IEICE. Unauthorized use of the original or translated papers is prohibited. See IEICE Provisions on Copyright for details.
Copy
Ziyi LIN, Yilei ZHOU, Hao ZHONG, Yuting CHEN, Haibo YU, Jianjun ZHAO, "SPDebugger: A Fine-Grained Deterministic Debugger for Concurrency Code" in IEICE TRANSACTIONS on Information,
vol. E100-D, no. 3, pp. 473-482, March 2017, doi: 10.1587/transinf.2016EDP7388.
Abstract: When debugging bugs, programmers often prepare test cases to reproduce buggy behaviours. However, for concurrent programs, test cases alone are typically insufficient to reproduce buggy behaviours, due to the nondeterminism of multi-threaded executions. In literature, various approaches have been proposed to reproduce buggy behaviours for concurrency bugs deterministically, but to the best of our knowledge, they are still limited. In particular, we have recognized three debugging scenarios from programming practice, but existing approaches can handle only one of the scenarios. In this paper, we propose a novel approach, called SPDebugger, that provides finer-grained thread controlling over test cases, programs under test, and even third party library code, to reproduce the predesigned thread execution schedule. The evaluation shows that SPDebugger handles more debugging scenarios than the state-of-the-art tool, called IMUnit, with similar human effort.
URL: https://globals.ieice.org/en_transactions/information/10.1587/transinf.2016EDP7388/_p
Copy
@ARTICLE{e100-d_3_473,
author={Ziyi LIN, Yilei ZHOU, Hao ZHONG, Yuting CHEN, Haibo YU, Jianjun ZHAO, },
journal={IEICE TRANSACTIONS on Information},
title={SPDebugger: A Fine-Grained Deterministic Debugger for Concurrency Code},
year={2017},
volume={E100-D},
number={3},
pages={473-482},
abstract={When debugging bugs, programmers often prepare test cases to reproduce buggy behaviours. However, for concurrent programs, test cases alone are typically insufficient to reproduce buggy behaviours, due to the nondeterminism of multi-threaded executions. In literature, various approaches have been proposed to reproduce buggy behaviours for concurrency bugs deterministically, but to the best of our knowledge, they are still limited. In particular, we have recognized three debugging scenarios from programming practice, but existing approaches can handle only one of the scenarios. In this paper, we propose a novel approach, called SPDebugger, that provides finer-grained thread controlling over test cases, programs under test, and even third party library code, to reproduce the predesigned thread execution schedule. The evaluation shows that SPDebugger handles more debugging scenarios than the state-of-the-art tool, called IMUnit, with similar human effort.},
keywords={},
doi={10.1587/transinf.2016EDP7388},
ISSN={1745-1361},
month={March},}
Copy
TY - JOUR
TI - SPDebugger: A Fine-Grained Deterministic Debugger for Concurrency Code
T2 - IEICE TRANSACTIONS on Information
SP - 473
EP - 482
AU - Ziyi LIN
AU - Yilei ZHOU
AU - Hao ZHONG
AU - Yuting CHEN
AU - Haibo YU
AU - Jianjun ZHAO
PY - 2017
DO - 10.1587/transinf.2016EDP7388
JO - IEICE TRANSACTIONS on Information
SN - 1745-1361
VL - E100-D
IS - 3
JA - IEICE TRANSACTIONS on Information
Y1 - March 2017
AB - When debugging bugs, programmers often prepare test cases to reproduce buggy behaviours. However, for concurrent programs, test cases alone are typically insufficient to reproduce buggy behaviours, due to the nondeterminism of multi-threaded executions. In literature, various approaches have been proposed to reproduce buggy behaviours for concurrency bugs deterministically, but to the best of our knowledge, they are still limited. In particular, we have recognized three debugging scenarios from programming practice, but existing approaches can handle only one of the scenarios. In this paper, we propose a novel approach, called SPDebugger, that provides finer-grained thread controlling over test cases, programs under test, and even third party library code, to reproduce the predesigned thread execution schedule. The evaluation shows that SPDebugger handles more debugging scenarios than the state-of-the-art tool, called IMUnit, with similar human effort.
ER -