7.12. Tracing through regions with no code image

Decompressing the trace requires the code image to be available. However, often the code image is not available for some areas of memory, for example system libraries, and it is not practical to filter all these regions out. These are referred to as unknown regions. The decompressor can resume tracing when an indirect branch occurs to a known region, without having to wait for the next synchronization point. The protocol is designed to enable the length of each packet to be determined without reference to the code image, so that alignment synchronization is not lost. The following information must continue to be monitored:

Branch addresses

These must be monitored to keep track of the last output address, used to compress branch addresses.

Data addresses

These must be monitored so that the first data address can be decompressed.

Context IDs

These can still be traced.

Cycle-accurate information is unaffected.

When tracing from a known region to an unknown region, data corresponding to the last data instruction in the known region must be discarded if the last data instruction did not have all of its data traced.

This is because the first data traced in the unknown region might correspond to the last data instruction in the known region, or to an instruction at the beginning of the unknown region. Alternatively, the decompressor can discard all data corresponding to the last data instruction in the known region whenever an unknown region is encountered.

Copyright © 1999-2002, 2004-2009, 2011 ARM Limited. All rights reserved.ARM IHI 0014Q
Non-ConfidentialID101211