Scholarship list
Conference proceeding
Sipping from the Firehose: How to "Grok" Gigabytes of Trace Debug Data
Published 12/2013
2013 IEEE 16th International Conference on Computational Science and Engineering, 730 - 733
Long gone are the days when you could use a logic analyser on a CPU to find out what it is executing. Caches, out-of-order memory accesses and especially multi-processing all effectively hide the sequence of instructions that the CPU is working on. Traditional debug techniques with breakpoints and single-stepping help, but require interactive sessions at human rates rather than the gigahertz rates of today's processors. To help this situation, many of today's sophisticated processors come with a side-port (e.g. BDM, ETM, Nexus or Aurora) that the CPU can use to communicate what it is doing in real-time, at its full rate. By using a debug probe to capture this stream of information, the activities of the CPU can be traced. This trace data can be post-analysed to determine what the processor did, and even what memory values were processed. The problem is that at gigahertz processing speeds, that's many gigabytes of data every second: what techniques are available to help understand this firehose of data? This trace data is one-dimensional: linear over time. So if a programming bug occurred during the trace capture, it is possible to see the sequence of steps leading up to it. Indeed, it is also possible to work backwards through the data looking for the exact condition that started the bug. The data is also suitable for use in profiling and coverage analysis: how often or whether certain routines were executed, and how long they took - all without instrumenting the code by adding time-wasting in-band profiling code, or by using statistical sampling techniques. Useful as this is, even more information can be gleaned by adding a second dimension: depth. More for optimising code than debugging it, being able to analyse call stacks can give insights into the (perhaps unexpected) way that the code base functions. However, to see code two-dimensionally requires a different view from the traditional source-based one: a graphical view, one that represents the call stack over time. This article explores these techniques, and explains how, through visualisation, the way a system is working (or not) can be more fully understood. Real-life examples of how using trace data helped debugging are also provided.
Conference proceeding
The Discovery Channel Telescope: early integration
Published 07/28/2010
Proceedings of SPIE, 7733, 1, 77330A - 77330A-16
Ground-based and Airborne Telescopes III
The Discovery Channel Telescope (DCT) is a 4.3-meter astronomical research telescope being built in northern Arizona
as a partnership between Discovery Communications and Lowell Observatory. The telescope will be able to support
substantial instrument payloads at Cassegrain, Nasmyth, and prime foci, and high observing cadences. The first-light
configuration will be as an f/6.1 Ritchey-Chrtien at Cassegrain with a 30 arc-minute field-of-view. Major facility work
is complete, and the telescope is currently in the integration phase with first-light anticipated in 2011. We present an
overview of the design and progress to date, and include plans for final integration, commissioning, and early science.
Conference proceeding
Published 1987
Conference proceeding
Published 1987