6.6. Tracing through regions with no code image

Decompressing the trace requires the code image to be available. However, the code image is often not available for some areas of memory, such as 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 TFO. 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.

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 both of the following occur:

This is because the first data traced in the unknown region might correspond to the last data instruction in the known region, or to a CPRT 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