Detection of Incorrect Pointer Dereferences for C/C plus plus Programs using Static Code Analysis and Logical Inference

被引:1
|
作者
Vert, Tatiana [1 ]
Krikun, Tatiana [1 ]
Glukhikh, Mikhail [2 ]
机构
[1] St Petersburg State Polytech Univ, St Petersburg, Russia
[2] Tech Univ Clausthal, Clausthal Zellerfeld, Germany
关键词
C source code error detection; static code analysis; logical inference;
D O I
10.1109/TMPA.2013.12
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This article considers a method for an increase of static code analysis precision. The method extends classic code analysis algorithm with dependency analysis. For this purpose, during abstract interpretation information about statically known values should be extracted as well as dependencies between unknown values. Dependencies can be represented with first-order logic predicates. Such a method allows using of external logical inference tools to prove truth or falsehood of branch conditions and of error occurence conditions. The main focus is oriented to pointer analysis logic and incorrect dereference detection rules. A prototype is implemented and results of efficiency evaluation are provided. The prototype uses Microsoft Z3 Solver as a logical inference tool. A significant precision increase is shown, ways for performance boosting are suggested.
引用
收藏
页码:78 / 82
页数:5
相关论文
共 50 条
  • [31] High Level Congestion Detection from C/C plus plus Source Code for High Level Synthesis
    Tatsuoka, Masato
    Kaneko, Mineo
    [J]. IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS COMMUNICATIONS AND COMPUTER SCIENCES, 2020, E103A (12) : 1437 - 1446
  • [32] Static call graph generator for C plus plus using debugging information
    Terashima, Yui
    Gondow, Katsuhiko
    [J]. 14TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2007, : 127 - +
  • [33] Finding parallel patterns through static analysis in C plus plus applications
    del Rio Astorga, David
    Dolz, Manuel F.
    Miguel Sanchez, Luis
    Daniel Garcia, J.
    Danelutto, Marco
    Torquati, Massimo
    [J]. INTERNATIONAL JOURNAL OF HIGH PERFORMANCE COMPUTING APPLICATIONS, 2018, 32 (06): : 779 - 788
  • [34] An analysis of programming language statement frequency in C, C plus plus , and Java']Java source code
    Zhu, Xiaoyan
    Whitehead, E. James
    Sadowski, Caitlin
    Song, Qinbao
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2015, 45 (11): : 1479 - 1495
  • [35] Static analysis usage for customizable semantic checks of C and C plus plus programming languages constraints
    Ignatyev, Valery
    [J]. 2014 SEVENTH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW 2014), 2014, : 241 - 242
  • [36] On the Use of Open-Source C/C plus plus Static Analysis Tools in Large Projects
    Pereira, Jose D'Abruzzo
    Vieira, Marco
    [J]. 2020 16TH EUROPEAN DEPENDABLE COMPUTING CONFERENCE (EDCC 2020), 2020, : 97 - 102
  • [37] C/C plus plus conditional compilation analysis using symbolic execution
    Hu, Y
    Merlo, E
    Dagenais, M
    Lagüe, B
    [J]. INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2000, : 196 - 206
  • [38] On Design Inference from Binaries Compiled using Modern C plus plus Defenses
    Erinfolami, Rukayat Ayomide
    Anh Quach
    Prakash, Aravind
    [J]. PROCEEDINGS OF THE 22ND INTERNATIONAL SYMPOSIUM ON RESEARCH IN ATTACKS, INTRUSIONS AND DEFENSES, 2019, : 17 - 30
  • [39] Value-Flow-Based Demand-Driven Pointer Analysis for C and C plus
    Sui, Yulei
    Xue, Jingling
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2020, 46 (08) : 812 - 835
  • [40] Type Inference for C: Applications to the Static Analysis of Incomplete Programs
    Melo, Leandro T. C.
    Ribeiro, Rodrigo G.
    Guimaraes, Breno C. F.
    Quintao Pereira, Fernando Magno
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2020, 42 (03):