You may be familiar with the Intel® acronyms LBR (Last Branch Record), BTS (Branch Trace Store), and even AET (Architecture Event Trace). What other new debug and trace services are available on the latest Intel silicon?
Within the latest Intel processors and SoCs, new logic is available to stream trace data at nearly full speed. Known variously as Real-Time Instruction Trace (RTIT) and Intel Processor Trace (IPT), this delivers highly compressed, time-stamped instruction-flow information to a debugger like ASSET’s SourcePoint. This differs from legacy trace services like LBR or BTS.
LBR, for example, can typically only record 40 to 50 instructions. With such a shallow instruction trace depth, quite frequently, the fault-producing event is not captured.
BTS, because it stores trace data to memory, will typically have a 60% or more performance impact. In the case of asynchronous events, like data being changed by errant code running in an interrupt, this slowdown is often significant enough to mask the problem. There’s nothing as frustrating as being able to trigger on the exact errant decision in code, but not knowing what code modified the bad data or why.
High speed processor trace provides deep, full speed instruction trace with timestamping. This enables debuggers like SourcePoint to provide much-enhanced debugging capabilities, such as code time profiling and optimization. One example of this can be seen in a SourcePoint screenshot of a Call Graph from trace of a range of UEFI in the boot-up of an Intel board:
Each line on the graph represents a level of call depth. Changes in color represent changes in a function. The movable cursor selects specific points on the timeline. Zoom in/out at the point indicated by the cursor can provide more or less trace detail. And the Call Graph can be synchronized to a code list view, with code and symbol windows opened to cursor-selected objects in the trace window.
Powerful stuff, huh? For a more detailed treatise, see our Application Note, Intel Adds High Speed Instruction Trace.