By Jakob Engblom
I spent most of last week at the S4D conference in Southampton, the UK. A small gathering of people interested in debug, it seems to be a good indicator of trends in debug. The dominant trends this year were clearly tracing and instrumentation. From the perspective of a virtual platform, tracing is a natural task, and it can be done with much less pain than on a physical platform.
Tracing on a piece of hardware requires that the processor or SoC at the heart of the system has an interface that can communicate a trace to an external trace box, and also that the chip has built-in tracing in the hardware. The trace units we have today are much more powerful than those of just a few year's ago, but trace is still not universal, not able to capture everything, and limited by the bandwidth of the few pins you can pull out of a target for the purpose of debug. The result is that you always end up tracing only certain aspects of the execution or only certain subcomponents of an SoC. In particular data trace is not always supported, and tracing the behavior and accesses to peripheral devices is usually hard.