Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2015, Volume 27, Issue 5, Pages 59–86
DOI: https://doi.org/10.15514/ISPRAS-2015-27(5)-5
(Mi tisp173)
 

This article is cited in 9 scientific papers (total in 9 papers)

Path-sensitive bug detection analysis of C# program illustrated by null pointer dereference

V. Koshelev, I. Dudina, V. Ignatyev, A. Borzilov

Institute for System Programming of the Russian Academy of Sciences
Full-text PDF (872 kB) Citations (9)
References:
Abstract: This paper proposes an approach for detecting bugs in C# programs and uses null pointer deference as the main example. The approach employs a scalable path-sensitive analysis, which involves symbolic execution with state merging and function summary methods. C/C++ program analyzers like Saturn Software Analysis Project, Calysto or Svace use similar approaches. We analyze functions in backward topological order with account for previously calculated summaries. For summary construction, we use the same analysis engine as for bug detection. The paper contains a formal description of the proposed approach applied to reduced “sugar-free” subset of C# language. For each instruction of the considered language, we define a formal semantics and transfer function according to the symbolic state. During the path-sensitive analysis, we store additional information related to possible bugs in the symbolic state, and the decision whether the warning should be reported is made upon the satisfiability of the corresponding formula. Therefore, we reduce the problem of bug detection to satisfiability of a first-order logical formula defined on atoms, which are arithmetic expressions on function input values. It can be efficiently solved with modern SMT solvers. We have implemented the approach in our Roslyn-based analyzer, called SharpChecker. Evaluation of SharpChecker on open-source commodity applications has shown acceptable scalability and reasonable amount of warnings.
Keywords: static analysis, null pointer dereference, path-sensitive analysis, function summary, bug detection.
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: V. Koshelev, I. Dudina, V. Ignatyev, A. Borzilov, “Path-sensitive bug detection analysis of C# program illustrated by null pointer dereference”, Proceedings of ISP RAS, 27:5 (2015), 59–86
Citation in format AMSBIB
\Bibitem{KosDudIgn15}
\by V.~Koshelev, I.~Dudina, V.~Ignatyev, A.~Borzilov
\paper Path-sensitive bug detection analysis of C\# program illustrated by null pointer dereference
\jour Proceedings of ISP RAS
\yr 2015
\vol 27
\issue 5
\pages 59--86
\mathnet{http://mi.mathnet.ru/tisp173}
\crossref{https://doi.org/10.15514/ISPRAS-2015-27(5)-5}
\elib{https://elibrary.ru/item.asp?id=25141695}
Linking options:
  • https://www.mathnet.ru/eng/tisp173
  • https://www.mathnet.ru/eng/tisp/v27/i5/p59
  • This publication is cited in the following 9 articles:
    Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:269
    Full-text PDF :126
    References:39
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024