2.3.3. Configuring Tracer

Tracer has its own section in the ARMulator peripherals configuration file (peripherals.ami):

{ Default_Tracer=Tracer
;; Output options - can be plaintext to file, binary to file or to RDI log
;; window. (Checked in the order RDILog, File, BinFile.)
RDILog=False
File=armul.trc
BinFile=armul.trc
;; Tracer options - what to trace
TraceInstructions=True
TraceRegisters=False
OpcodeFetch=True
;;Normally True is useful, but sometimes it's too expensive.
TraceMemory=True
;TraceMemory=False
TraceIdle=True
TraceNonAccounted=False
TraceEvents=False
;;If there is a non-core bus, do we trace it (as well).
TraceBus=True
;; Flags - disassemble instructions; start up with tracing enabled;
Disassemble=True
TraceEIS=False
StartOn=False
}

where:

RDILog

instructs Tracer to output to the RDI log window (in AXD) or the console (under armsd).

File

defines the file where the trace information is written. Alternatively, you can use BinFile to store data in a binary format.

The other options control what is being traced:

TraceInstructions

traces instructions.

TraceRegisters

traces registers.

OpcodeFetch

traces instruction fetch memory accesses.

TraceMemory

traces memory accesses.

TraceIdle

traces idle cycles.

TraceNonAccounted

traces unaccounted RDI accesses to memory. That is, those accesses made by the debugger.

TraceEvents

traces events. For more information, see Tracing events below.

TraceBus

may be:

TRUE

Bus (off-chip accesses traced)

FALSE

Core (off-chip accesses not traced).

Disassemble

disassembles instructions. Simulation is much slower if you enable disassembly.

TraceEIS

if set TRUE, changes output to a format compatible with other simulators. This allows tools to compare traces.

StartOn

instructs ARMulator to trace as soon as execution begins.

Other tracing controls

You can also control tracing using:

Range=low address,high address

tracing is carried out only within the specified address range.

Sample=n

only every nth trace entry is sent to the trace file.

Tracing events

When tracing events, you can select the events to be traced using:

EventMask=mask,value

only those events whose number when masked (bitwise-AND) with mask equals value are traced.

Event=number

only number is traced. (This is equivalent to EventMask=0xFFFFFFFF,number.)

For example, the following traces only MMU/cache events:


EventMask=0xFFFF0000,0x00010000

See Events for more information.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI0058D
Non-Confidential