Vergleich des reinen C-Codes

Gast #1480466
Lesenswert?

Hallo zusammen,

ich habe zwei Varianten eines Programms, eine mit relativ wenigen 
Kommentaren und eine komplett kommentiert.

Beim Kommentieren haben sich evtl. ein paar ungewollte Änderungen am 
Code durch copy&paste etc. eingeschlichen.

Wie kann ich einen 100%-Vergleich der Funktion anstellen (Funktionstest 
am µC ist nicht realisierbar)?

Da wir EEPROM-Befehle nutzen und der Compiler die Adressierung der 
EEPROM-Bereiche selbständig (und dynamisch) übernimmt, führt es ja nicht 
zum Erfolg, wenn ich den Maschinencode beider Versionen vergleiche, 
richtig?

Vielen Dank für die Hilfe im Voraus.

Max
Gast #1480487
Lesenswert?

Wenn Du den Code wirklich nur um Kommentare erweitert hast, sollte sich 
das vom Compiler erzeugte Binärfile nicht ändern - ein 
Vorher-Nachher-Vergleich mit einem geeigneten Diff-Tool ist also 
möglich.

Zeigt Dir der Vergleich Änderungen, hast Du mehr als nur Kommentare 
geändert..


Warum versuchst Du es nicht direkt mit einem Diff-Tool?
Gast #1480534
Lesenswert?

Danke für die schnellen Antworten:

- Zum Thema Diff-Tool: Das habe ich versucht, jedoch hat sich durch die 
Umstruktierung des Codes nahezu jede Zeile verändert, wodurch das 
hinfällig wird.

- Die Hex-Files unterscheiden sich laut Diff-Tool. Liegt das womöglich 
wie gesagt an den EEPROM-Funktionen, dessen Speicherbereiche der avr gcc 
jedes mal neu festlegt?


Wie komm ich denn an die kommentar-befreite Variante nach dem 
Präprozessor ran? Ich nutze AVR-Studio mit dem avr gcc.

Grüße
Max
#1480583
Lesenswert?

Max P. schrieb:

> - Die Hex-Files unterscheiden sich laut Diff-Tool. Liegt das womöglich
> wie gesagt an den EEPROM-Funktionen, dessen Speicherbereiche der avr gcc
> jedes mal neu festlegt?

Nein.
Auch ein Compiler ist eine deterministische Maschine. Wenn die 
Allokierungen im Code in der gleichen Reihenfolge erfolgen, dann kommt 
auch immer die gleiche Adresslage raus.

Da wird dir wohl nichts anderes übrig bleiben als:
Zurück an den Start.

Oder in den sauren Apfel beißen und Zeile für Zeile durchgehen.
Gast #1480824
Lesenswert?

Ein super Vergleichs- und Mergetool für C: "Beyond Compare" von 
http:\\www.scootersoftware.com

Unterscheidet zwischen funktionellen C-Code Änderungen und solchen ohne 
funktionellen Einfluss (Formatierung, Kommentare, Spaces, Leerzeilen 
etc...)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren