ARM Technical Support Knowledge Articles

Why do I only see incorrect or corrupt trace being captured?

Applies to: ARM Developer Suite (ADS), Trace Debug Tools (TDT)

Answer

Try the following:

1. Check that all connections are secure. Reset the target, and then reload the image. Check that the AXD session file has not been corrupted, to ensure that it is not launch AXD from the command line using 'AXD -clear_registry'
2. Ensure that the image loaded in the debugger is EXACTLY the same as the image that is being executed on the target. If it is not then the trace captured will not be accurate.
3. Ensure that the debugger internal variable $image_cache_enable is set correctly. This variable contains information which allows the debugger to keep its own copy of the current image and enables the debugger to decompress trace data while the target is running. In the case where you have TDT installed, and are debugging a traceable target (such as a 966 with an ETM), this value defaults to 1 (i.e. a copy of the current image is kept). Otherwise it is 0. This can cause coherency problems if some of the contents of the image change at runtime and the image resident on the target does not correspond to the image held in the cache. Setting $image_cache_enable to 0 will avoid this problem. However, AXD will not then be able to decompress trace data when the target is running. The best solution is to set $image_cache_enable to 2. This will cause AXD to use the cached image when the target is running, but refer to real memory when the target is stopped.

Article last edited on: 2008-09-09 15:47:32

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential