The PC tracer tool records the program counter (instruction pointer) address for every executed instruction on connected processors. Each entry is prefixed with the processor number. Output can go to a file, stdout, or a cyclic memory buffer.
conf_object, log_object, instrumentation_tool
- 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.
-
file
-
Optional attribute;
read/write access; type:
s|n
Output file for PC trace
-
print_processor
-
Optional attribute;
read/write access; type:
b
If true, prefix each trace entry with the processor name. Default is false.
-
print_engine
-
Optional attribute;
read/write access; type:
b
If true, include the execution engine in each trace entry. Default is false.
-
thread_safe
-
Optional attribute;
read/write access; type:
b
If true, use a mutex to protect the trace buffer for safe concurrent access from multiple processors running in parallel. This has a performance cost. Default is false.
-
address_type
-
Optional attribute;
read/write access; type:
s
Type of address to trace: "virtual" (default) or "physical".
-
trace_history_size
-
Optional attribute;
read/write access; type:
i
Maximum number of entries in the cyclic trace buffer. When filled, oldest entries are overwritten.
-
trace_buffer_entries
-
Pseudo attribute;
read-only access; type:
[[oii]*]
Get trace buffer as list of [cpu_object, pc, engine] pairs
pc-tracer-tool