MDX Micro Debugger (Update Log)

(picture might be distorted in mobile version)

Hello,

I've started a similar thread one year ago but decided to make a new one since much has changed in this one year.

So I started developing a Debugger/Simulator for AVRs (ATmega328P) one and a half year ago.

It features:

  • Backstepping
  • Disassembler
  • Static Code Analysis (still in progress)
  • Supports whole Instruction Set (131 instructions)
  • Realtime simulation (currently approx. 17 MHz)
  • Peripheral Simulation (Timer0, EEPROM, more are coming soon)
  • Syntax Highlight

Setting up MDX is very easy and its usage too.

If you have suggestions and/or feedback, just message me.
Maybe this tool helps some of you.

Written in: C
Github: GitHub - Milo-D/libvmcu-Virtual-MCU-Library: A Library for Static and Dynamic Analysis of AVR binaries.

I will use this thread as a small changelog, so I will start with its first entry.

Update (v.0.5.0)

- Added: Analyzer Module.
 - The Analyzer Module consists of multiple (future) submodules.
 - Each submodule will be covering exactly one aspect of static code analysis.
 - Planned submodules:
 - ISR analysis (explore details about ISRs in your code)
 - SFR analysis (annotate addresses which target special function registers)
 - Function analysis (analyse function calls and maybe even their arguments/return-values)
 - many more...
 - The analyzer is a work in progress

- Performance: Reached 17 MHz execution speed. It is now possible to simulate default Arduino in realtime.

- Refactor of toplevel structures
 - table_t class is now only for user-defined entries like breakpoints, etc.
 - system_t class does not contain table_t class anymore.
 - report_t class is the report of the analyzer after decoding and disassembling hexfile.

- Displaying hexadecimal addresses instead of line numbers in sidepanel.
- Table commands (like break, unbreak) are now requiring a hexadecimal address

- Added: Diagram of the analyzer dataflow
- Added: New screenshot

- DebugWindow Refactor (II)
 - panel properties are now calculated seperately in <g,s,f,d,e,o,r> pnl_ctor