Vergleich des reinen C-Codes

Gast #1480466
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.