Zweihunderteinundsiebzig

Kürzlich trat bei einem meiner privaten Tools ein Fehler auf. Die Anwendung hing. Anscheinend eine Endlosschleife.

Ich hatte nicht viel Zeit, mich darum zu kümmern. Da ich aber eine Datei modifiziert abspeichern wollte, blieb mir gar nichts anderes übrig, als mal mit dem Debugger reinzuschauen.
Nach kurzer Zeit hatte ich die Wiederholungsroutine identifiziert.
Was jetzt allerdings genau da passierte, weiß ich nicht im einzelnen. Ich weiß nur, dass der Quotient zweier 64-bit Integervariablen plötzlich negativ war. Dabei wurde der Quotient von einer double-Variablen aufgenommen, und die zwei Integers waren zwar riesengroß (deshalb hatte ich ja auch int64 als Datentyp gewählt), aber dennoch positiv.
Die Abbruchbedingung war, dass die double-Variable größer als ein bestimmter Wert wurde. Was aber natürlich nie geschehen konnte, weil sie ja jetzt negativ war.
Ich schaute mir das zwar mal kurz in der CPU-Ansicht an, hatte aber wegen Zeitknappheit nicht den Nerv, mir das genauer anzusehen. War wohl irgendein Overflow-Effekt.

Stattdessen entwickelte ich schnell einen Workaround, der – obgleich nicht sehr elegant – das Problem löste, ohne das Ergebnis zu verfälschen.

Dieses Tool nutze ich ausschließlich selbst.
Bei meinen privaten Tools verzichte ich normalerweise auf Errorhandling und manchmal programmiere ich eben auch quick’n’dirty.
Ich weiß, wo eventuell Probleme auftauchen können und ggf. kann ich Fehler auch gleich korrigieren.

Bei der Software für meine Kunden dagegen gehe ich mit weitaus größerer Sorgfalt vor.

Advertisements

Über breakpoint AKA Anne Nühm

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu Zweihunderteinundsiebzig

  1. breakpoint schreibt:

    ZweihundertneunundneunzigAls ich vor ein paar Wochen einen quick’n’dirty Workaround für ein privates Tool fixte, muss ich wohl einen Fehler gemacht haben.

    Um einen Overflow zu vermeiden, schnitt ich damals einfach ein paar Daten ab, die ohnehin höchstens minimalen Einfluss …

    Gefällt mir

  2. Pingback: Zweihundertneunundneunzig | breakpoint

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s