Let's build our own On Chip Debugger application - STEP 5

It's time to extend the AURIX Debugger by adding the possibility to trace each instruction execution. Still referencing to older DOS Debug program, I like to implement something that will permit <<Executes one instruction and displays the contents of all registers, the status of all flags, and the decoded form of the instruction executed.>>. My idea is to extend the Interactive User Interface by:

  • Control core: run, stop, step, trace
Debug: T (Trace) implementation

Beside some code refactoring, the core of this feature is to:
  1. capture CPU registers (D0..15 / A0..5) content before instruction execution 
  2. execute the instruction as the Instruction Pointer (IP also called PC) is pointing to
  3. capture CPU registers (D0..15 / A0..5) content after instruction execution 
  4. display only the registers that have been modified due to the instruction execution
such could results into:
Where is clear that the within the STEP 5 we have been able to add also the De-Assembler step (at least for few Tricore 1.6 instructions). 
At the end, the Debug Trace command is a crucial command for a professional debugger application, since it can also help to debug applications even without the source project (e.g. no HEX, no ELF associated files).

Here another self-explainable example:


Stay tuned!

P.S.: the current de-assembler implementation is really rudimental and contains only few Tricore 1.6 instructions decoding. But, with time and dedication, I will make it!

Sources will be soon available in the STEP 5 of https://github.com/aurixinino/aurixocd.



Commenti