LOCKSMITH: Practical Static Race Detection for C

被引:74
|
作者
Pratikakis, Polyvios [1 ]
Foster, Jeffrey S. [1 ]
Hicks, Michael [1 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2011年 / 33卷 / 01期
关键词
Languages; Verification; Reliability; Algorithms; Data race; race detection; static analysis; context sensitivity; correlation inference; sharing analysis; contextual effects; Locksmith; INFERENCE;
D O I
10.1145/1889997.1890000
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
LOCKSMITH is a static analysis tool for automatically detecting data races in C programs. In this article, we describe each of LOCKSMITH's component analyses precisely, and present systematic measurements that isolate interesting trade-offs between precision and efficiency in each analysis. Using a benchmark suite comprising stand-alone applications and Linux device drivers totaling more than 200,000 lines of code, we found that a simple no-worklist strategy yielded the most efficient interprocedural dataflow analysis; that our sharing analysis was able to determine that most locations are thread-local, and therefore need not be protected by locks; that modeling C structs and void pointers precisely is key to both precision and efficiency; and that context sensitivity yields a much more precise analysis, though with decreased scalability. Put together, our results illuminate some of the key engineering challenges in building LOCKSMITH and data race detection analyses in particular, and constraint-based program analyses in general.
引用
收藏
页数:55
相关论文
共 50 条
  • [41] Static Data Race Detection in Multi-task Programs for Industrial Robots
    Ashraf, Ameena K.
    D'Souza, Meenakshi
    DISTRIBUTED COMPUTING AND INTELLIGENT TECHNOLOGY, ICDCIT 2023, 2023, 13776 : 51 - 66
  • [42] Practical clean-label backdoor attack against static malware detection
    Zhan, Dazhi
    Xu, Kun
    Liu, Xin
    Han, Tong
    Pan, Zhisong
    Guo, Shize
    COMPUTERS & SECURITY, 2025, 150
  • [43] Enhancing Static Analysis for Practical Bug Detection: An LLM-Integrated Approach
    Li, Haonan
    Hao, Yu
    Zhai, Yizhuo
    Qian, Zhiyun
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [44] Static Deadlock Detection for Asynchronous C# Programs
    Santhiar, Anirudh
    Kanade, Aditya
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 292 - 305
  • [45] An Extended Polyhedral Model for SPMD Programs and Its Use in Static Data Race Detection
    Chatarasi, Prasanth
    Shirako, Jun
    Kong, Martin
    Sarkar, Vivek
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2016, 2017, 10136 : 106 - 120
  • [46] LR-Miner: Static Race Detection in OS Kernels by Mining Locking Rules
    Li, Tuo
    Bai, Jia-Ju
    Han, Gui-Dong
    Hu, Shi-Min
    PROCEEDINGS OF THE 33RD USENIX SECURITY SYMPOSIUM, SECURITY 2024, 2024, : 6149 - 6166
  • [47] Summary based static analysis for practical search for defects in C programs and libraries
    Borodin, Alexey
    2014 SEVENTH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW 2014), 2014, : 231 - 232
  • [48] STATIC KWH METER - IS IT PRACTICAL
    FERNS, JL
    ELECTRICAL REVIEW, 1970, 187 (12): : 405 - &
  • [49] SA4U: Practical Static Analysis for Unit Type Error Detection
    Taylor, Max
    Aurand, Johnathon
    Qin, Feng
    Wang, Xiaorui
    Henry, Brandon
    Zhang, Xiangyu
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,
  • [50] Canary: Practical Static Detection of Inter-thread Value-Flow Bugs
    Cai, Yuandao
    Yao, Peisen
    Zhang, Charles
    PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 1126 - 1140