| |
| 701. |
What does "????????" mean in trace window?
|
| Answer: |
The "????????" indicates that MAJIC knows an instruction
was executed, but it does not know the address, and therefore
cannot know the opcode either.
There are several conditions that cause "????????" to be displayed in the trace window.
|
| |
| 1. |
When execution is started, the processor did not emit the start address.
Some processors do not emit the start address when execution is
started or resumed.
Therefore, MAJIC cannot determine the PC until the first jump
is encountered, so it will show "????????" for each instruction
whose address is unknown.
|
| |
| 2. |
When there are two (or more) indirect jumps in a row, with too
little time between to emit a full address.
The EJTAG specification allows for two modes of operation in this case:
- in real-time mode, full-speed execution is maintained,
and the incomplete address presentation results in "????????"
- in non-real-time mode, the processor stalls until the
address presentation is done, so that complete trace
history is provided at the expense of execution performance
The trace_real_time option controls this mode, on
processors which support both modes.
|
| |
| 3. |
When the trace history does not make sense compared to
the contents of memory.
For example, if the trace buffer indicates that a branch
was taken, but the memory location is not a branch instruction.
In this case, the MAJIC will show "????????" from that point
until it discovers the next jump that has a complete address
presentation. This may happen if the code was deliberately
or accidently changed during the run.
|
| |
| 4. |
When the MAJIC cannot access memory in the traced area.
In this case, you will see numerous memory access error
messages when you try to refresh the trace window.
|