Forum: Projekte & Code AVR Assembly Debugger (CLI)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von David M. (milo-d)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeite seit einiger Zeit an einen AVR Assembly Debugger auf 
Commandline Basis und heute wollte ich die erste frühe Version von MDX 
öffentlich stellen.

Das Ziel von MDX ist es, die Vorgänge im Mikrocontroller während der 
Programmausführung übersichtlich und klar darzustellen um das Debuggen 
von Assembly Programmen zu vereinfachen. Parallel dazu soll es einfach 
und intuitiv zu bedienen sein.

MDX für Linux soll nicht MPLab ersetzen, sondern den Leuten, die lieber 
mit dem Terminal arbeiten und damit besser zurecht kommen, eine 
Alternative geben.

Da es noch eine recht frühe Version ist, sind noch nicht alle Funktionen 
verfügbar und MDX unterstützt auch noch nicht alle Assembly 
Instruktionen. Aber daran wird ja gearbeitet.

Wer vielleicht ein paar Bilder bzw. Code sehen möchte oder es einfach 
selber ausprobieren will, hier ist der GitHub Link:

https://github.com/Milo-D/MDX-Assembly-Debugger

Plattform: Linux
Programmiert in: C++

von Wilhelm M. (wimalopaan)


Bewertung
1 lesenswert
nicht lesenswert
Wäre es nicht sinnvoller, simavr zu erweitern?

von Oliver S. (oliverso)


Bewertung
-2 lesenswert
nicht lesenswert
Vor allem, da simavr im avr-gdb enthalten ist, und da per 
gdb-Kommandozeile alles tut, was man braucht. Auch unter Linux.

Oliver

von David M. (milo-d)


Bewertung
3 lesenswert
nicht lesenswert
Danke für die Antworten.

Es wäre wahrscheinlich wirklich sinnvoller, jedoch habe ich das Projekt 
eher aus Spaß und Interesse begonnen. Somit hab ich auch die Gelegenheit 
selber zu entscheiden, wie das Programm dann später aussieht und 
arbeitet.

Außerdem habe ich durch dieses Projekt eine Menge gelernt. Alleine 
deshalb lohnt es sich :D

von David M. (milo-d)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wollte hier nur noch mal kurz ein Update geben, falls es jemanden 
interessiert.

Ein Screenshot der aktuellen Versionen liegt im Anhang.

-> Backstepping wird nun unterstützt:

Man kann nun während der Simulation zurückgehen und sich
genauer umschauen.

-> Headless Modus wurde hinzugefügt:

MDX erhält eine .hex Datei und simuliert diese bis zum EOF oder bis
zu einem Timeout. Dann wird der Endzustand des Controllers als JSON 
ausgegeben. Wäre für testing und fuzzing interessant.

-> CLI wurde komplett neu aufgesetzt:

Komplett neues, schöneres und angenehmeres Interface.

-> Ünterstützung für .eep.hex Dateien:

Man kann nun während der Simulation dynamisch .eep.hex Dateien ins 
EEPROM laden und mit dem Befehl "xec <addr> <range>" als Char Literal 
wieder auslesen.

-> Disassembler Modus:

Ohne die CLI zu starten wird die .hex Datei decodiert und 
disassembliert. Dabei werden Labels, Kommentare und Newlines 
computergeneriert und eingefügt.

-> Disassemblierten Assembler Code redefinieren:

Man kann nun den Quellcode während der Simulation bearbeiten.

Es werden mittlerweile über 60 Instructions des AVR Instruction Sets 
unterstützt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.