Pnyxomancer
Diplomarbeit

2. Oktober 2008

Right tool for the right job

Abgelegt unter: Rechner, DiplomarbeitSteve um 15:13

Heute habe ich es endlich geschafft, einen Debugger für die Windows-Variante meines Diplomarbeitsprogramms zum Laufen zu bekommen. Und natürlich prompt einen Fehler gefunden, den ich schon stundenlang erfolglos gejagt hatte. Das Problem war sogar absolut simpel gewesen – ein nicht initialisierter Zeiger, der aber nur zur Wirkung kam, wenn er zufällig ganz falsch lag.

Solche Fehler kann man aber in 10000 Zeilen Code lange suchen. Ohne Debugger vor allem, und der Cygwin-Debugger ist dauernd abgeschmiert. Heute hab ich dann gelernt: Einfach den mingw-Debugger für mingw-Programme nehmen. Dann klappts auch mit der Fehlersuche.

15. September 2008

Territorialkämpfe im Kellerspeicher

Abgelegt unter: Diplomarbeit, RechnerSteve um 21:01

Meine derzeitige Hauptbeschäftigung ist meine Diplomarbeit. Das ist auf der einen Seite natürlich echt toll – man klotzt, statt wie sonst zu kleckern – aber auf der anderen Seite können kleine Frustrationen um so mehr durchschlagen.

Zu diesen kleinen Frustrationen gehört wohl auch, dass man sich mit dem Pfusch anderer Menschen herumschlagen darf. So zum Beispiel mit dem "Software Development Kit" von Andor, das eine Schnittstelle zu den wissenschaftlichen Kameras dieser Firma herstellt – und so voll von Fehlern ist, dass kaum weiß, worüber man zuerst weinen soll.

Ich hab jetzt jedenfalls drei oder vier Tage damit verdaddelt, einen Weg zu finden, den Stack meines Programms vor der Schreibgeilheit dieser Funktionen zu schützen. Schreibgeilheit hört sich vielleicht schlimm an, ist aber das einzige Wort, mit dem ich das Verhalten beschreiben kann, das dort an den Tag gelegt wird: Diese Funktionen schreiben nämlich fröhlich und glücklich Werte in die Nähe des Basisregisters der aufrufenden Funktion und überschreiben damit gern mal deren lokale Variablen und sogar den eigenen Rückgabewert, wenn der unglücklich liegt. Krankerweise stimmt die Adresse der Kellerspeicherspitze hinterher wieder – nur liegt ihre Umgebung in Trümmern. Tja, und der einzige Weg, sich davor zu schützen, sind großzügig dimensionierte ungenutzte Arrays auf dem Stack.

Na ja, so brauche ich wenigstens nicht von der freien Wirtschaft zu träumen, denn deren ärgste Hacks habe ich ja auf dem Schreibtisch. Doch ich werde jeden lynchen, der nochmal Physiker an C-Compiler lässt.

Valid XHTML Strict 1.0 Valid Atom Design by Northern Web Coders