SPDebugger: A Fine-Grained Deterministic Debugger for Concurrency Code

被引:0
作者
Lin, Ziyi [1 ]
Zhou, Yilei [1 ]
Zhong, Hao [2 ]
Chen, Yuting [2 ]
Yu, Haibo [1 ]
Zhao, Jianjun [3 ]
机构
[1] Shanghai Jiao Tong Univ, Sch Software, Shanghai, Peoples R China
[2] Shanghai Jiao Tong Univ, Dept Comp Sci & Engn, Shanghai, Peoples R China
[3] Kyushu Univ, Fac Informat Sci & Elect Engn, Fukuoka 8190395, Japan
来源
IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS | 2017年 / E100D卷 / 03期
基金
日本学术振兴会;
关键词
concurrency; debug; deterministic reproduction; BENCHMARK;
D O I
10.1587/transinf.2016EDP7388
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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 pre-designed 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.
引用
收藏
页码:473 / 482
页数:10
相关论文
共 15 条
[1]   CONCURRIT: A Domain Specific Language for Reproducing Concurrency Bugs [J].
Elmas, Tayfun ;
Burnim, Jacob ;
Necula, George ;
Sen, Koushik .
ACM SIGPLAN NOTICES, 2013, 48 (06) :153-164
[2]   Towards a framework and a benchmark for testing tools for multi-threaded programs [J].
Eytani, Yaniv ;
Havelund, Klaus ;
Stoller, Scott D. ;
Ur, Shmuel .
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2007, 19 (03) :267-279
[3]   CLAP: Recording Local Executions to Reproduce Concurrency Failures [J].
Huang, Jeff ;
Zhang, Charles ;
Dolby, Julian .
ACM SIGPLAN NOTICES, 2013, 48 (06) :141-151
[4]  
Huang Jeff., 2010, Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE '10, P207, DOI DOI 10.1145/1882291.1882323
[5]  
Jagannath Vilas., 2011, FDN SOFTWARE ENG FSE, P223
[6]   JaConTeBe: A Benchmark Suite of Real-World Java']Java Concurrency Bugs [J].
Lin, Ziyi ;
Marinov, Darko ;
Zhong, Hao ;
Chen, Yuting ;
Zhao, Jianjun .
2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, :178-189
[7]  
Lu K, 2014, ACM SIGPLAN NOTICES, V49, P287, DOI [10.1145/2692916.2555252, 10.1145/2555243.2555252]
[8]  
Melo S.M., 2015, P 6 INT WORKSH AUT T, P31, DOI [10.1145/2804322.2804328, DOI 10.1145/2804322.2804328]
[9]   Concurrent Breakpoints [J].
Park, Chang-Seo ;
Sen, Koushik .
ACM SIGPLAN NOTICES, 2012, 47 (08) :331-332
[10]   A large-scale study on the usage of Java']Java's concurrent programming constructs [J].
Pinto, Gustavo ;
Torres, Weslley ;
Fernandes, Benito ;
Castor, Fernando ;
Barros, Roberto S. M. .
JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 106 :59-81