Multi-level Static Analysis for Finding Error Patterns and Defects in Source Code

被引:3
|
作者
Belevantsev, Andrey [1 ,2 ]
Avetisyan, Arutyun [1 ,2 ,3 ,4 ]
机构
[1] Russian Acad Sci, Inst Syst Programming, Moscow, Russia
[2] Moscow MV Lomonosov State Univ, Moscow, Russia
[3] Natl Univ, Moscow Inst Phys & Technol, Moscow, Russia
[4] Natl Res Univ, Higher Sch Econ, Moscow, Russia
关键词
Static analysis; Symbolic execution; Defect detection;
D O I
10.1007/978-3-319-74313-4_3
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
This paper presents the formalism for multiple level static analysis for defect detection in source code. The first level has the program and memory model that are suitable for AST-level checks. The following levels address detection of critical errors: on the second level interprocedural partially context-sensitive analysis is performed via dataflow analysis and symbolic execution with state merging, whereas the third level adds path-sensitivity via predicate tracking for the dataflow information computed on the second. The analysis designer can freely choose the appropriate analysis level or their combination to check the desired program property. The presented methods are implemented in the Svace static analysis toolset. The first analysis levels for C/C++ and Java are implemented as extensions of corresponding production compilers (Clang and javac) and Find-Bugs tool plugins, while the second and third levels make the core of Svace analyzer together with 100+ implemented checkers for critical defects. The evaluation on extra large codebases of millions lines of code such as full-blown Android and Tizen OSes has shown the approach scalability and the acceptable false positives ratio (less than 40%).
引用
收藏
页码:28 / 42
页数:15
相关论文
共 50 条
  • [1] Static analyzer Svace for finding defects in a source program code
    Ivannikov, V. P.
    Belevantsev, A. A.
    Borodin, A. E.
    Ignatiev, V. N.
    Zhurikhin, D. M.
    Avetisyan, A. I.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2014, 40 (05) : 265 - 275
  • [2] Static analyzer Svace for finding defects in a source program code
    V. P. Ivannikov
    A. A. Belevantsev
    A. E. Borodin
    V. N. Ignatiev
    D. M. Zhurikhin
    A. I. Avetisyan
    [J]. Programming and Computer Software, 2014, 40 : 265 - 275
  • [3] From Source Coding to MIMO - A Multi-Level Unequal Error Protection
    Barmada, Bashar
    Rehman, Saeed
    [J]. PROCEEDINGS OF THE 2016 IEEE REGION 10 CONFERENCE (TENCON), 2016, : 3597 - 3600
  • [4] A multi-level static memory cell
    Häfliger, R
    Riis, HK
    [J]. PROCEEDINGS OF THE 2003 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, VOL I: ANALOG CIRCUITS AND SIGNAL PROCESSING, 2003, : 25 - 28
  • [5] A binary multi-level voltage-source inverter for static var generation
    Hosseini, SH
    Mathur, RM
    [J]. 1997 CANADIAN CONFERENCE ON ELECTRICAL AND COMPUTER ENGINEERING, CONFERENCE PROCEEDINGS, VOLS I AND II: ENGINEERING INNOVATION: VOYAGE OF DISCOVERY, 1997, : 427 - 430
  • [6] Code Compression using Multi-Level Dictionary
    Azevedo Dias, Wanderson Roger
    Moreno, Edward David
    [J]. 2013 IEEE 4TH LATIN AMERICAN SYMPOSIUM ON CIRCUITS AND SYSTEMS (LASCAS), 2013,
  • [7] Mathematical morphology multi-level analysis of trees patterns in Savannas
    Laporterie, F
    Flouzat, G
    Amram, O
    [J]. IGARSS 2001: SCANNING THE PRESENT AND RESOLVING THE FUTURE, VOLS 1-7, PROCEEDINGS, 2001, : 1496 - 1498
  • [8] CODE-SMASH: Source-Code Vulnerability Detection Using Siamese and Multi-Level Neural Architecture
    Han, Sungmin
    Nam, Hyunkyung
    Kang, Jaesik
    Kim, Kwangsoo
    Cho, Seungjae
    Lee, Sangkyun
    [J]. IEEE ACCESS, 2024, 12 : 102492 - 102504
  • [9] Latency optimized clustered error mitigation for multi-level flash memory using product code
    Mandal, Swagata
    Chakrabarti, Amlan
    [J]. MICROELECTRONICS RELIABILITY, 2021, 116
  • [10] Error Modeling and Accuracy Analysis of a Multi-level Hybrid Support Robot
    Chai, Xiaoming
    Tang, Xiaoqiang
    Tang, Lewei
    Lu, Qiujian
    [J]. 2012 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA), 2012, : 2319 - 2324