Static object trace extraction for programs with pointers

  • Authors:
  • Thomas Eisenbarth;Rainer Koschke;Gunther Vogel

  • Affiliations:
  • University of Stuttgart, Univ. Strasse 38, Stuttgart 70569, Germany;University of Stuttgart, Univ. Strasse 38, Stuttgart 70569, Germany;University of Stuttgart, Univ. Strasse 38, Stuttgart 70569, Germany

  • Venue:
  • Journal of Systems and Software - Special issue: Software reverse engineering
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

A trace is a record of the execution of a computer program, showing the sequence of operations executed. Dynamic traces are obtained by executing the program and depend upon the input. Static traces, on the other hand, describe potential sequences of operations extracted statically from the source code. Static traces offer the advantage that they do not depend upon input data. This paper describes a new automatic technique to extract static traces for individual stack and heap objects. The extracted static traces can be used in many ways, such as protocol recovery and validation in particular and program understanding in general. In addition, this article describes four case studies we conducted to explore the efficiency of our algorithm, the size of the resulting static traces, and the influence of the underlying points-to analysis on this size.