An optimized memory monitoring for runtime assertion checking of C programs

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Runtime assertion checking provides a powerful, highly automatizable technique to detect violations of specified program properties. However, monitoring of annotations for pointers and memory locations (such as being valid, initialized, in a particular block, with a particular offset, etc.) is not straightforward and requires systematic instrumentation and monitoring of memory-related operations. This paper describes the runtime memory monitoring library we developed for execution support of e-acsl, executable specification language for C programs offered by the Frama-C platform for analysis of C code. We present the global architecture of our solution as well as various optimizations we realized to make memory monitoring more efficient. Our experiments confirm the benefits of these optimizations and illustrate the bug detection potential of runtime assertion checking with e-acsl.

Original languageEnglish
Title of host publicationRuntime Verification - 4th International Conference, RV 2013, Proceedings
Pages167-182
Number of pages16
DOIs
Publication statusPublished - 18 Nov 2013
Externally publishedYes
Event4th International Conference on Runtime Verification, RV 2013 - Rennes, France
Duration: 24 Sept 201327 Sept 2013

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume8174 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference4th International Conference on Runtime Verification, RV 2013
Country/TerritoryFrance
CityRennes
Period24/09/1327/09/13

Keywords

  • Frama-C
  • e-acsl
  • executable specification
  • invalid pointers
  • memory monitoring
  • memory-related errors
  • runtime assertion checking

Fingerprint

Dive into the research topics of 'An optimized memory monitoring for runtime assertion checking of C programs'. Together they form a unique fingerprint.

Cite this