Evicted Variables and the Interaction of Global Register Allocation and Symbolic Debugging

Abstract

A symbolic debugger allows a user to display the values of program variables at a breakpoint. However, problems arise if the program is translated by an optimizing compiler. This paper addresses the effects of global register allocation and assignment: a register assigned to a variable V may not be holding V's value at a breakpoint since the register can also be assigned to other variables. We define the problem of determining whether a variable is in its assigned register as the residence problem. Prior work on debugging of optimized code has focused on the currency problem; detecting whether a variable's run-time value is the expected value. Determining residence is a more serious problem than currency detection. We present a data-flow algorithm that accurately computes a variable's residency, by determining when a variable becomes evicted from its register. We measure the effectiveness of different approaches to determine variable residence for three C programs from the SPEC suite.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 1992
Accession Number
ADA260928

Entities

People

  • Ali-reza Adl-tabatabai
  • Thomas Gross

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Information Science
  • Instructions
  • Language
  • Object Code
  • Optimization
  • Parallel Computing
  • Programming Languages
  • Recovery
  • Scheduling (Production)

Fields of Study

  • Computer science

Readers

  • Parallel and Distributed Computing.
  • Regression Analysis.