| |||
| Home > RealView Debugger Commands > Alphabetical command reference > TRACEINSTREXEC | |||
The TRACEINSTREXEC command enables you to set a tracepoint on instruction execution.
[,TRACEINSTREXEC qualifier...] {address | address_range}
where:
qualifierIs an ordered list of zero or more qualifiers. The possible qualifiers are described in List of qualifiers.
addressSpecifies the address at which the tracepoint is placed.
address_rangeSpecifies the address range at which the tracepoint is placed. See Specifying address ranges for details on how to specify an address range.
This command sets a tracepoint at the address or address range you specify that triggers when an instruction is executed in the indicated address range.
The tracepoint type is by default to trigger, that is, start
collecting trace information into the trace buffer. You can modify
the action using the hw_out: qualifier to, for
example, stop tracing.
For more information about tracepoints and the way you access the ETM, see the Embedded Trace Macrocell Specification and the chapter that describes tracing in RealView Developer Kit v2.2 Extensions User Guide.
The command qualifiers are as follows, but not all qualifiers are available for all of the supported trace targets:
guiIf an error occurs when executing the command or when the tracepoint is triggered, the GUI is used to report it. Otherwise, the error is reported to the command pane.
This qualifier has no effect in the headless debugger.
hw_ahigh:(n)Specifies the high address for an address-range tracepoint. The low address is specified by the standard tracepoint address.
For example, this command sets a tracepoint that triggers
for any address between 0x1000-0x1200:
TRCIE,hw_ahigh:0x1200 0x1000
hw_dvalue:(n)Specifies a data value to be compared to values transmitted on the processor data bus.
For example, this command sets a tracepoint that triggers
when the instruction opcode 0xEA000040 is executed
in code between 0x1FA00-0x1FAFF:
TRCIE,hw_dvalue:0xEA000040 0x1FA00..0x1FAFF
hw_dhigh:(n)Specifies the high data value for a data-range tracepoint.
The low data value is specified by the hw_dvalue qualifier.
For example, this command sets a tracepoint that triggers
when the instruction opcode between 0xEA000040-0xEA00004F is
executed in code between 0x1FA00-0x1FAFF:
TRCIE,hw_dvalue:0xEA000040,hw_dhigh:0xEA00004F 0x1FA00..0x1FAFF
hw_dmask:(n)Specifies the data value mask value for a data-range
tracepoint. Data values that match the value specified by the hw_dvalue qualifier
when masked with this value cause the tracepoint to trigger.
For example, this command sets a tracepoint that triggers
when the an instruction with basic opcode 0xEA000040 but
with any value in bits [15:8] is executed in code between 0x1FA00-0x1FAFF:
TRCIE,hw_dvalue:0xEA000040,hw_dmask:0xFFFF00FF 0x1FA00..0x1FAFF
hw_passcount:(n)Specifies the number of times that the specified condition has to occur to trigger the tracepoint. You can use this option to set up and use the ARM ETM counter hardware, if the ETM has counters exists and there is one available for use. ETM counters are 32 bits.
hw_and:{[then-]id}Perform an and or an and-then conjunction
with an existing tracepoint. For example, hw_and:h2,
or hw_and:"then-h2", where 2 is
the tracepoint id of another tracepoint.
In the and form, the conditions associated with both tracepoints are chained together, so that the action associated with the second tracepoint is performed only when both conditions match at the same time.
In the and-then form, when the condition for the first tracepoint is met, the second tracepoint is enabled. When the second tracepoint condition is matched, even if the first condition no longer matches, the actions associated are performed.
The is one
of:id
the tracepoint list index of an
existing of tracepoint, and has the format h,
for example indexh1
prev for the last tracepoint
specified for this connection
next for the target of this condition.
hw_in:{s}Input trigger tests. The string is
specific to the trace connection being used. For the ARM ETM, the
following case-sensitive forms are defined:s
"Check Condition Code=s"For instruction tracepoints, comparisons, check
the instruction condition code against the specified value, and
return True if it matches, where is:s
PassTrace only instructions that are executed.
FailTrace only instructions that are not executed.
hw_out:{s}Output trigger tests. The string is
specific to the trace connection being used. For the ARM ETM, the
following case-sensitive forms are defined:s
"Tracepoint Type=s"Specify the trace action for this command, where depends
on the target connection:s
For an ETM-based
hardware target s is:
TriggerSets a trigger point.
Start TracingSets a trace start point.
Stop TracingSets a trace stop point.
Trace InstrSets an instruction-only trace range.
Trace Instr and DataSets an instruction and data trace range.
hw_not:{s}Use this qualifier to invert the sense of an address,
data, or hw_and term specified in the same command.
The argument can
be set to:s
addrInvert the tracepoint address value.
dataInvert the tracepoint value.
thenInvert
an associated hw_and:{then} condition.
For example, to trace when a data value does not match a mask, you can write:
TRCIE,hw_not:data,hw_dmask:0x00FF ...
The trace commands require an address value, and the addr variant of hw_not uses
this address.
TRCIE,hw_not:addr 0x10040..0x10060
This means to trace execution at addresses other than the
range 0x10040 to 0x10060,
that is, exclude this region from the trace.
The hw_not:then variant of the command
is used in conjunction with hw_and to form or and nand-then conditions.
modify:(n)Instead of creating a new tracepoint, modify the
tracepoint with tracepoint ID number by
replacing the address expression and the qualifiers of the existing
tracepoint to those specified in this command.n
You cannot use this qualifier with the hw_and qualifier
to change a non-chained tracepoint to a chained tracepoint. However,
you can modify a chained tracepoint with any other qualifier and
also change the address expression.
The following examples show how to use TRACEINSTREXEC:
TRACEINSTREXEC
\MATH_1\#449.3 Set a
hardware tracepoint at statement 3 of line 449 in the file math.c.
TRCIE,hw_pass:(5)
\MAIN_1\#35Set a hardware
tracepoint using an ETM counter to enable tracing the fifth time
that execution reaches line 35 of main.c.
The following commands provide similar or related functionality: