Mindfuck, Programmieren

4 Stunden Debugging (nicht lustig)

Heute habe ich ein altes Programm von mir debugged, weil es bei großen Dateien, beim Kopieren Fehler verursachte.

Die erste Version stammt aus dem Jahre 1997, damals konnte man (und besonders ich) sich nicht vorstellen, daß es jemals Dateien geben sollte, die größer als 4GB werden; für 4GB reicht ein DWORD-Wert aus, da er einen maximalen Wert von 2^32 fassen kann, was eben 4GB sind.

Mit den Jahren wurden die Speicherkapazitäten immer höher und bei einer HD-Aufzeichnung von 1 Stunde können schon mehr als 4GB an Speicher “gefressen” werden; natürlich passte ich mein Programm daraufhin an…ach übrigens, es vergleicht Dateien bzw Ordner und es kann auch Dateien und Ordner speichern. Alles lief problemlos, bis ich versuchte einen Ordner zu kopieren, dessen Inhalt größer als 4GB war…was passierte?  Zuerst stürzte das Programm ab…diesen schwerwiegenden Fehler konnte ich schnell beheben, aber es gab danach immer noch den Fehler, daß die Daten nicht korrekt kopiert wurden.

Nach 4 Stunden Debugging fand ich den Fehler, es war nur ein einfacher “Type-Cast” von “LONGLONG” zu “DWORD”, der den Fehler verursachte…zwar hatte ich alle Parameter angepasst, um auch größere Dateien zu bearbeiten, aber ich weiß nicht von “Wann?” dieser “Type-Cast” stammt.

Manchmal sind es ganz kleine Ursachen, die zu großen Fehlern führen, das habe ich heute wieder zu spüren bekommen…

Programmieren ist nichts für “Weicheier”, aber etwas für “Nerds” :-)

Anmerkung: LONGLONG beschränkt die Ergebnisse auf 2^64 und das sind: 18.446.744.073.709.551.616 Bytes (18TB)…größere Dateien oder Ordner wird es niemals geben…weckt mich wieder in 20 Jahren ;-)

Waren das nicht die Anzahl Körner, die ein Bauer verlangte, auf einem Schachfeld – Ja ! so ist es…

Drop-Box-Link, mit dem Sie das Programm kostenlos downloaden können

Standard