MagicDetector: A Precise and Scalable Static Deadlock Detector for C/C++ Programs

被引:0
|
作者
Huaxiong Cao
Naijie Gu
Yunkai Du
机构
[1] University of Science and Technology of China,The Department of Computer Science and Technology
[2] Anhui Province Key Laboratory of Computing and Communication Software,Institute of Advanced Technology
[3] University of Science and Technology of China,undefined
关键词
Static deadlock detection; Function inlining; Function summary; Symbolic execution; Execution traces; Petri net;
D O I
暂无
中图分类号
学科分类号
摘要
Existing static deadlock detectors suffer from either lack of precise interprocedural path- and context-sensitive analysis or lack of scalability. In addition, they only take a few of synchronous events into account and suffer from the lack of a united method to handle different synchronization events. To address these problems, we first present a static interprocedural analysis algorithm, named mixed procedure inlining and summary-based analysis (MPISBA), to produce feasible execution traces in C/C++ programs. The functions which call function pointers or virtual functions are considered as inlining functions to figure out callees in different context. Path-sensitive symbolic execution is also used by MPISBA to track synchronization events in different program paths guarded by path conditions. In order to do interprocedural context-sensitive analysis and avoid function re-analysis, the proposed algorithm generates a summary for each function and applies the summary at the function’s call sites. Based on feasible execution traces in program, a translation algorithm called generic synchronization event translation is proposed to translate different synchronization events into unified Petri nets. A prototype detector named MagicDetector is implemented for these procedures. A suite of open-source and large-scale softwares are used to validate MagicDetector, and comparisons are made among JDAE, Magiclock, DADCP and MagicDetector. Experimental results demonstrate that MagicDetector scales well to programs with 2M lines of codes and is more precise than previous detectors, finding more real deadlocks and reporting less false positives.
引用
收藏
页码:5149 / 5167
页数:18
相关论文
共 50 条
  • [1] MagicDetector: A Precise and Scalable Static Deadlock Detector for C/C plus plus Programs
    Cao, Huaxiong
    Gu, Naijie
    Du, Yunkai
    ARABIAN JOURNAL FOR SCIENCE AND ENGINEERING, 2016, 41 (12) : 5149 - 5167
  • [2] OMPRacer: A Scalable and Precise Static Race Detector for OpenMP Programs
    Swain, Bradley
    Li, Yanze
    Liu, Peiming
    Laguna, Ignacio
    Georgakoudis, Giorgis
    Huang, Jeff
    PROCEEDINGS OF SC20: THE INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS (SC20), 2020,
  • [3] A dynamic predictive race detector for C/C++ programs
    Peng Luo
    Deqing Zou
    Hai Jin
    Yajuan Du
    Jinan Shen
    The Journal of Supercomputing, 2017, 73 : 3999 - 4019
  • [4] Static Deadlock Detection for Asynchronous C# Programs
    Santhiar, Anirudh
    Kanade, Aditya
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 292 - 305
  • [5] Restructuring C Programs into C++ Programs
    Zhang Ying 1
    2.State Key Laboratory of Software Engineering
    Wuhan University Journal of Natural Sciences, 2001, (Z1) : 256 - 262
  • [6] Restructuring C programs into C++ programs
    Ying, Z.
    Yu-Ming, Z.
    Bao-Wen, X.
    Yuan, L.
    2001, Wuhan University (06): : 1 - 2
  • [7] Keeping C/C++ code scalable
    Krauss, KJ
    DR DOBBS JOURNAL, 2006, 31 (03): : 28 - +
  • [8] Keeping C/C++ code scalable
    Rational Software Division, IBM
    Dr Dobb's J, 3 (28-34):
  • [9] C/C++ :: Progress or deadlock in system-level specification
    Villar, E
    Gajski, D
    Rosenstiel, W
    Plantin, J
    Cavalloro, P
    Gerousis, V
    Barton, D
    DESIGN, AUTOMATION AND TEST IN EUROPE, CONFERENCE AND EXHIBITION 2001, PROCEEDINGS, 2001, : 136 - 136
  • [10] Orion: High-precision methods for static error analysis of C and C++ programs
    Dams, Dennis R.
    Namjoshi, Kedar S.
    FORMAL METHODS FOR COMPONENTS AND OBJECTS, 2006, 4111 : 138 - 160