Forum: Compiler & IDEs [STM32] RAM-Dump + .elf / .map File lesbar auswerten


von Michael (Gast)


Lesenswert?

Hallo Forum,

Hintergrund:
Ich habe ein Produkt entwickelt, welches bereits weitläufig verbreitet 
ist. Da die Software stehtig weiterentwickelt wird, bleiben Fehler nicht 
aus. Oft ist es schwer, dem Anwender dann alle notwendigen Information 
zu entlocken, um auf die Fehlerursache zu kommen.

Idee:
Im Kern läuft die Software auf einem STM32F1 mit integriertem 
Webserveer. Ich würde gerne meinem Produkt die Möglichkeit hinzufügen, 
dass der Kunde sich ein Ram-Dump runterladen kann, um es mir zur 
Fehleranalyse zu schicken.

Problem:
Ich suche nun nach einer geeigneten Möglichkeit, wie ich diesen RAM-Dump 
vernünftig auswerten kann. Daher würde ich gerne eine Software haben, 
die mir aus dem RAM-Dump und entsprechenden Dateien, die ich beim 
Compilieren der Software erstelle, eine lesbare Auswertung erstellt.
Also eine Übersicht aller statischen Variablen und deren aktuellen 
Werte.

Nun meine Frage:
Gibt es evtl. schon eine Software, die aus "irgendwelchen Debugdateien, 
die beim compilieren erstellt werden" und einem RAM-Dump eine lesbare 
Auswertung generieren können?
Wenn nein, welche Datei sollte ich durch den Compiler (ich verwende ARM 
Yagarto Windows GCC C Compiler) erstellen lassen bzw. verwenden?

Ich benötige halt die Information, welche statischen Variablen 
existieren, welchen Datentyp sie besitzen und an welcher absoluten 
Adresse diese stehen.

Vielen Dank!
Michael

von hp-freund (Gast)


Lesenswert?

Wenn der Kunde schon den Tester spielt, würde ich lieber die 
Möglichkeiten einer Ausgabe mit PASS/FAIL Anzeige für 
Programmteile/Funktionen nutzen.
Noch mehr "gebastelte" Software bringt evtl. noch mehr Probleme.

Ob das auf Dauer vom Kunden akzeptiert wird?

von Michael (Gast)


Lesenswert?

Das Konzept sieht das "Tested by the customer" so vor, da es sich um ein 
Beta-Tester Programm handelt.

Leider beantwortet deine Aussage nicht meine Frage.

von Little B. (lil-b)


Lesenswert?

Das Mapfile allein sollte eigentlich schon ausreichend Informationen 
beinhalten. Dummerweise musst du aber genau das Mapfile haben, das beim 
compilieren der entsprechenden Applikation herausgefallen ist.

Du musst also den compiler-output mitversionieren. Wenn du dann gleich 
noch alles (.o, .elf, etc) mit ins Git wirfst, dann kannst du genau den 
softwarestand in dein Debugger laden und die Binary RAM Image 
importieren. Eine solche Funktion gibts im Eclipse im "Memory 
Browser"-View. Ob das fuktioniert, habe ich keine Ahnung. Aber vieleicht 
hilft dir der Ansatz.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Wenn eine Firmware released wird, werden alle anderen Dateien auch in 
Subversion mitgetaggt. Den "Memory Browser"-View werde ich mir mal 
anschauen. Vielen Dank!

von Markus F. (mfro)


Lesenswert?

gdb kann einen binären raw memory dump einlesen (s. help restore).
Wenn du dann noch den code hast, kannst Du globale und statische 
Variablen direkt angucken.

Bloß den Code für den dump mußt Du selbst schreiben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.