The base class for the trace mode. This module provides an easy way of generating traces from Simics. Actions traced are executed instructions, memory accesses and, occurred exceptions. Traces will by default be printed as text to the terminal but can also be directed to a file in which case a binary format is available as well.
It is also possible to control what will be traced by setting a few of the provided attributes. Some of those should be set before enabling the tracer for the first time. If processors and memory-spaces from different cells are traced, then multi-threading must be disabled
conf_object, log_object
- cell-change
- Notifier that is triggered after the object's cell was changed.
- object-delete
- Notifier that is triggered just before Simics object is deleted.
- queue-change
- Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
-
start
– control default tracer
-
stop
– stop default tracer
-
file
-
Session attribute;
read/write access; type:
s|n
Name of output file that the trace is written to. If the name ends in .gz, the output will be gzipped.
-
raw_mode
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 for raw output format, and 0 for ascii. Raw output format is only supported when writing to a file.
-
consumer
-
Session attribute;
read/write access; type:
o|n
Optional consumer object. Must implement trace_consume.
-
enabled
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable tracing, 0 to disable.
-
trace_instructions
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable instruction tracing, 0 to disable.
-
trace_data
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable tracing of data, 0 to disable.
-
trace_exceptions
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable tracing of exceptions, 0 to disable.
-
filter_duplicates
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to filter out duplicate trace entries. Useful to filter out multiple steps in looping or repeating instructions.
-
print_virtual_address
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of the virtual address, 0 to disable.
-
print_physical_address
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of the physical address, 0 to disable.
-
print_linear_address
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of the linear address, 0 to disable.
-
print_access_type
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of the memory access type, 0 to disable.
-
print_memory_type
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of the memory type, 0 to disable.
-
print_memory_space
-
Session attribute;
read/write access; type:
b
true|false Set to true to enable printing of memory spaces. False is default.
-
print_data
-
Session attribute;
read/write access; type:
i
1|0 Set to 1 to enable printing of data and instruction op codes, 0 to disable.
-
data_intervals_p
-
Session attribute;
read/write access; type:
[[ii]*]
List of physical address intervals for data tracing. If no intervals are specified, all addresses are traced.
-
data_intervals_v
-
Session attribute;
read/write access; type:
[[ii]*]
List of virtual address intervals for data tracing. If no intervals are specified, all addresses are traced.
-
cpu_list
-
Session attribute;
read/write access; type:
[o*]|n
List of processor objects to restrict the trace to or NIL to include all processor objects. The attribute must be set before enabling the tracer for the first time. If processor objects from different cells are traced, then multi-threading must be disabled.
-
memory_space_list
-
Session attribute;
read/write access; type:
[o*]
List of additional memory spaces to add to the trace besides those connected to the processors in the cpu_list attribute. Should be set before enabling the tracer for the first time. If memory-spaces from different cells are traced, then multi-threading must be disabled
trace