Unterschiedliches Programmverhalten bei verschiedenen Kompellierungsmethoden?

cmm1808

Level-1
Beiträge
204
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

wir haben bei uns einen Drucker, der zur Chargenverfolgung Etiketten auf Güter druckt.
Dieser Drucker wurde neu angeschafft und von der Herstellerfirma in betrieb genommen.

Leider zeigte der Drucker aber einige unerwünschte Verhaltensweisen (Etikett wurde nicht gedruckt, falsche daten auf dem Etikett, ...)

Die Firma hat uns nun, nach einigem Hin und Her, eine neue Exe. Datei aufgespielt, auf der, zusätzlich zum schon vorhandenen Programm, ein Logger erweitert wurde.
Der Logger soll Zeitstempel, Aktionen und Koppelsignale von Extern und nach Extern aufzeichnen.

Uns ist jetzt aufgefallen, daß die neue Exe. kleiner ist als die Alte, obwohl doch eine neue Funktion erweitert wurde.
Auf wundersame Weise sind aber nun auch alle Fehlfunktionen verschwunden.

Antwort von der Firma: "Wir haben nur den Logger erweitert, sonst nichts. Das die neue Exe kleiner ist als die Alte, liegt an dem Kompellierungsverfahren"

Meine Frage ist nun: kann ein Programm, welches nicht gekürzt wurde, sondern sogar noch erweitert, in Abhängigkeit der Kompellierungsmethode kleiner werden?
Ich nehme eher an, daß einiges rausgelöscht wurde, das die Fehlfunktionen verursacht hat.

Da ich selber 0,0% Ahnung von solchen Dingen habe, wende ich mich an Euch.

Zu den technischen Daten des Druckers kann ich nur Windows XP angeben.
Ob nun das Programm in C oder einer anderen Sprache geschrieben wurde, weiß ich (noch) nicht.

Danke schon einmal für Eure Antworten.
 
Eine Logging-Funktion sind in der Regel nur wenige Zeilen Code. Auf die Größe der Exe wirkt sich das kaum aus.
Compiler-Optionen können schon einen ganz erheblichen Einfluß haben, allerdings bei einem bestehenden Projekt (Produkt) sollte kaum mehr die Notwendigkeit bestehen die Optionen zu ändern.
Aber es gibt halt Entwickler und "Entwickler". Von daher: "Nichts ist unmöglich"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Blockmove,

wie äußert sich das denn?
Treten bei gleichem Quellcode und unterschiedlichen Compiler-Optionen auch unterschiedliche Programmabläufe auf?
So nach dem Motto: Compiler-Option A= Lampe geht an, aber bei Compiler-Option B= Lampe blinkt.

Bei meinem Fall wäre das dann: Compiler-Option A wertet alle Koppelsignale anders aus als Compiler-Option B, also ein anderer Programmablauf.
 
bissle von mir

Mit deinem Wissen über die Exe (welche Programmiersprache/Umgebung, ...) gibt es zu viele Möglichkeiten um richtig Antworten zu können - was du hier als Infos bekommen kannst ist zu 100% spekulativ aus dem Bauch/der Luft heraus

Die reine "Neuübersetzung" sollte die Fehler nicht entfernen (Falls es kein Library-Problem war) - aber auch hier gibt es eine Menge Möglichkeiten:

Die Größe:
-Sie haben noch ungenutze Libraries entfernt
-Falls vorhanden: die Optimierung von Speed auf Size gestellt
-Bilder,Strings,... in Ressource wurde besser gepackt
-Alle statischen Libs jetzt als Release (falls C/C++)

Zum Fehler:
-Sie haben externe Libraries upgedatet - also nichts am eigenen Code geändert
-Das Logging ändert das Zeitverhalten und der schlechte mit Sleeps gebastelte Code verhält sich jetzt "besser"

etc,etc,etc. (hier bitte weiter 100Mio Varianten eintragen)

Ich denke die Bugs wurden einfach gefixt - so wie es meistens passiert - ausserdem warum sollen die einfach nur neu Übersetzen - wenn doch nichts geändert wurde :)

Wenn du wirklich wissen willst was sich geändert hat brauchst du die alte Exe - dann könntest du beide durch Dependecy Walker oder IDA Pro jagen und mal schauen ob
mehr/weniger importiert wird, Funktionen hinzugekommen sind - aber nicht inhaltlich nur die Menge sonst wirds hart :)

MfG

LowLevelMahn
 
Zuletzt bearbeitet:
Sollte das Programm in .NET geschrieben sein kannst du dir den Sourcecode einfach mit dem
.NET Reflector anschauen.(Sofern der code nicht mit z.B. dem .NET Reactor geschützt wurde)
 
Zurück
Oben