Checking Memory Safety with Blast

نویسندگان

  • Dirk Beyer
  • Thomas A. Henzinger
  • Ranjit Jhala
  • Rupak Majumdar
چکیده

Blast is an automatic verification tool for checking temporal safety properties of C programs. Given a C program and a temporal safety property, Blast statically proves that either the program satisfies the safety property or the program has an execution trace that exhibits a violation of the property. Blast constructs, explores, and refines abstractions of the program state space based on lazy predicate abstraction and interpolation-based predicate discovery. We show how Blast can be used to statically prove memory safety for C programs. We take a two-step approach. First, we use CCured, a type-based memory safety analyzer, to annotate with run-time checks all program points that cannot be proved memory safe by the type system. Second, we use Blast to remove as many of the run-time checks as possible (by proving that these checks never fail), and to generate for the remaining run-time checks execution traces that witness them fail. Our experience shows that Blast can remove many of the run-time checks added by CCured and provide useful information to the programmer about many of the remaining checks.

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

ثبت نام

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

منابع مشابه

The Software Model Checker BLAST: Applications to Software Engineering

BLAST is an automatic verification tool for checking temporal safety properties of C programs. Given a C program and a temporal safety property, BLAST either statically proves that the program satisfies the safety property, or provides an execution path that exhibits a violation of the property (or, since the problem is undecidable, does not terminate). BLAST constructs, explores, and refines a...

متن کامل

The Blast Query Language for Software Verification

Blast is an automatic verification tool for checking temporal safety properties of C programs. Blast is based on lazy predicate abstraction driven by interpolation-based predicate discovery. In this paper, we present the Blast specification language. The language specifies program properties at two levels of precision. At the lower level, monitor automata are used to specify temporal safety pro...

متن کامل

بررسی آزمایشی مشکلات حافظه در مبتلایان به نوع وارسی اختلال وسواسی- اجباری

 Abstract Introduction: The objective of this research was to determine memory problems (episodic memory, memory bias and memory confidence) in checking type obsessive-compulsive disorder (OCD). Method: Sixty individuals with OCD (30 checking and 30 washing types) were selected, together with 60 control individuals (30 with generalized anxiety disorder and 30 normal). The groups matched the che...

متن کامل

اثر مسئولیت‌پذیری بر سوگیری و اطمینان به حافظه در بیماران مبتلا به وسواس وارسی

AbstractObjectives: Considering the importance of memory problems in the development and maintenance of obsessive-compulsive disorder, the present study has been carried out with the goal of evaluating a number of memory functions in patients with the mentioned disorder. Method: In order to study memory bias and confidence, and the effects of responsibility on them in patients with checking obs...

متن کامل

Static Verification “Under The Hood”: Implementation Details and Improvements of BLAST

BLAST is an open-source static verification tool used in checking safety properties of C programs. Given a C program with several assertions, which should not fail at runtime, BLAST statically analyzes the program, and either returns a program execution path that leads to violation of one of the assertions, or proves that no assertion is violated. If BLAST fails to prove inreachability of asser...

متن کامل

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


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

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

ثبت نام

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

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005