Failure-Directed Program Trimming (Extended Version)

06/14/2017
by   Kostas Ferles, et al.
0

This paper describes a new program simplification technique called program trimming that aims to improve the scalability and precision of safety checking tools. Given a program P, program trimming generates a new program P' such that P and P' are equi-safe (i.e., P' has a bug if and only if P has a bug), but P' has fewer execution paths than P. Since many program analyzers are sensitive to the number of execution paths, program trimming has the potential to improve the effectiveness of safety checking tools. In addition to introducing the concept of program trimming, this paper also presents a lightweight static analysis that can be used as a pre-processing step to remove program paths while retaining equi-safety. We have implemented the proposed technique in a tool called Trimmer and evaluate it in the context of two program analysis techniques, namely abstract interpretation and dynamic symbolic execution. Our experiments show that program trimming significantly improves the effectiveness of both techniques.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/10/2021

Symbolic Security Predicates: Hunt Program Weaknesses

Dynamic symbolic execution (DSE) is a powerful method for path explorati...
research
11/22/2017

Relational Symbolic Execution

Symbolic execution is a classical program analysis technique, widely use...
research
02/05/2023

CBMC: The C Bounded Model Checker

The C Bounded Model Checker (CBMC) demonstrates the violation of asserti...
research
06/23/2018

Preventing Buffer Overflows by Context-aware Failure-oblivious Computing

In languages like C, buffer overflows are widespread. A common mitigatio...
research
05/19/2019

Property Directed Self Composition

We address the problem of verifying k-safety properties: properties that...
research
09/08/2023

A Grounded Conceptual Model for Ownership Types in Rust

Programmers learning Rust struggle to understand ownership types, Rust's...
research
03/15/2022

Safe Neurosymbolic Learning with Differentiable Symbolic Execution

We study the problem of learning worst-case-safe parameters for programs...

Please sign up or login with your details

Forgot password? Click here to reset