Model checking C++ programs

نویسندگان

چکیده

In the last three decades, memory safety issues in system programming languages such as C or C++ have been one of most significant sources security vulnerabilities. However, there exist only a few attempts with limited success to cope complexity program verification. We describe and evaluate novel verification approach based on bounded model checking (BMC) satisfiability modulo theories (SMT) verify programs. Our analyses programs by encoding into SMT various sophisticated features that language offers, templates, inheritance, polymorphism, exception handling, Standard Template Libraries. formalize these within our formal framework using decidable fragment first-order logic then show how state-of-the-art solvers can efficiently handle that. implemented top ESBMC. compare ESBMC LLBMC DIVINE, which are verifiers check directly from LLVM bitcode. Experimental results wide range programs, presenting higher number correct results. Additionally, has applied commercial application telecommunication domain successfully detected arithmetic-overflow errors, could potentially lead

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Model Checking Procedural Programs

We consider the model-checking problem for sequential programs with procedure calls. We first present basic algorithms for solving the reachability problem and the fair computation problem. The algorithms are based on two techniques: summarization, that computes reachability information by solving a set of fixpoint equations, and saturation, that computes the set of all reachable program states...

متن کامل

Model Checking Boolean Programs

The reliability of software is crucial to the functioning of today’s world, which heavily depends on computer systems. Given the ever increasing complexity of software, bugs are subtle and thus hard to find with manual inspection. A more promising approach is to use a formal method such as model checking, which employs exhaustive state-space search to ensure the correctness of the software. How...

متن کامل

State Space Reduction Strategie for Model Checking Concurrent C Programs

Model checking is an effective technique for uncovering subtle errors in concurrent systems. Unfortunately, the state space explosion is the main bottleneck in model checking tools. Here we propose a state space reduction technique for model checking concurrent programs written in C. The reduction technique consists in an analysis phase, which defines an approximate agglomeration predicate. Thi...

متن کامل

Model Checking LTL Properties over C Programs with Bounded Traces

Context-bounded model checking has been used successfully to verify safety properties in multi-threaded systems automatically, even if they are implemented in low-level programming languages such as C. In this paper, we describe and experiment with an approach to extend context-bounded software model checking to safety and liveness properties expressed in linear-time temporal logic (LTL). Our a...

متن کامل

Model Checking Nonblocking MPI Programs

This paper explores a way to apply model checking techniques to parallel programs that use the nonblocking primitives of the Message Passing Interface (MPI). The method has been implemented as an extension to the model checker Spin called Mpi-Spin. It has been applied to 17 examples from a widely-used textbook on MPI. Many correctness properties of these examples were verified and in two cases ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Software Testing, Verification & Reliability

سال: 2021

ISSN: ['1099-1689', '0960-0833']

DOI: https://doi.org/10.1002/stvr.1793