Reliable and fast DWARF-based stack unwinding

Abstract

Debug information, usually encoded in the DWARF format, is a hidden and obscure component of our computing infrastructure. Debug information is obviously used by debuggers, but it also plays a key role in program analysis tools, and, most surprisingly, it can be relied upon by the runtime of high-level programming languages. For instance the C++ runtime leverages DWARF stack unwind tables to implement exceptions! Alas, generating debug information adds significant burden to compiler implementations, and the debug information itself can be pervaded by subtle bugs, making the whole infrastructure unreliable. Additionally, interpreting the debug tables is a time-consuming task and, for some applications as sampling profilers, it turns out to be a performance bottleneck.

Document Details

Document Type
Pub Defense Publication
Publication Date
Oct 10, 2019
Source ID
10.1145/3360572

Entities

People

  • Francesco Zappa Nardelli
  • Stephen Kell
  • Théophile Bastian

Organizations

  • Google
  • Institut National de Recherche en Informatique et en Automatique
  • Office of Naval Research
  • University of Kent

Tags

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Software Engineering.
  • Systems Analysis and Design