| |||
Home > ARMulator Basics > Tracer > 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.
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
th
trace entry is sent to the trace file.n
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
equals mask
are
traced.value
Event=number
only
is
traced. (This is equivalent to number
EventMask=0xFFFFFFFF,
.) number
For example, the following traces only MMU/cache events:
EventMask=0xFFFF0000,0x00010000
See Events for more information.