Department of Computer Science and Technology

Technical reports

OpenDTrace Specification version 1.0

George Neville-Neil, Jonathan Anderson, Graeme Jenkinson, Brian Kidney, Domagoj Stolfa, Arun Thomas, Robert N. M. Watson

August 2018, 235 pages

Approved for public release; distribution is unlimited. Sponsored by the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contracts FA8650-15-C-7558 (“CADETS”) as part of the DARPA Transparent Computing research program. The views, opinions, and/or findings contained in this report are those of the authors and should not be interpreted as representing the official views or policies, either expressed or implied, of the Department of Defense or the U.S. Government.

Abstract

OpenDTrace is a dynamic tracing facility offering full-system instrumentation, a high degree of flexibility, and portable semantics across a range of operating systems. Originally designed and implemented by Sun Microsystems (now Oracle), user-facing aspects of OpenDTrace, such as the D language and command-line tools, are well defined and documented. However, OpenDTraces internal formats the DTrace Intermediate Format (DIF), DTrace Object Format (DOF) and Compact C Trace Format (CTF) have primarily been documented through source-code comments rather than a structured specification. This technical report specifies these formats in order to better support the development of more comprehensive tests, new underlying execution substrates (such as just-in-time compilation), and future extensions. We not only cover the data structures present in OpenDTrace but also include a complete reference of all the low level instructions that are used by the byte code interpreter, all the built in global variables and subroutines. Our goal with this report is to provide not only a list of what is present in the code at any point in time, the what, but also explanations of how the system works as a whole, the how, and motivations for various design decisions that have been made along the way, the why. Throughout this report we use the name OpenDTrace to refer to the open-source project but retain the name DTrace when referring to data structures such as the DTrace Intermediate Format. OpenDTrace builds upon the foundations of the original DTrace code but provides new features, which were not present in the original. This document acts as a single source of truth for the current state of OpenDTrace as it is currently implemented and deployed.

Full text

PDF (0.9 MB)

BibTeX record

@TechReport{UCAM-CL-TR-924,
  author =	 {Neville-Neil, George and Anderson, Jonathan and Jenkinson,
          	  Graeme and Kidney, Brian and Stolfa, Domagoj and Thomas,
          	  Arun and Watson, Robert N. M.},
  title = 	 {{OpenDTrace Specification version 1.0}},
  year = 	 2018,
  month = 	 aug,
  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-924.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  number = 	 {UCAM-CL-TR-924}
}