Trace File ========== Currently only SPIKE traces are supported. However, as only the PC and encoding is required to generate the trace supporting other formats \ should be trivial. After parsing (:any:`_spike.parse_spike_log`) a doubly-linked-list of all instructions observed in the given application is available (:any:`_trace.TRACE`) for \ each processor ID. .. graphviz:: digraph DLL { rankdir=LR; node [shape=record]; /* List nodes */ n1 [label="1st Executed"]; n2 [label="2nd Executed"]; n3 [label="3rd Executed"]; n1 -> n2 [label="next"]; n2 -> n3 [label="next"]; n2 -> n1 [label="prev"]; n3 -> n2 [label="prev"]; } Trace Object ------------ The :any:`_trace.Trace` class is a linked list element that contains all information regarding the current, \ previous, and next executed instruction. By having reference to the previous and next instruction the user can inspect the application for sequences, for example: 1. A register dependency between a 2 subsequent instructions 2. The distance between a branch / jump instruction and its destination