Antwort an „JürgenB“ verfassen

Hallo Matthias,

meine aufwändigste Fehlersuche liegt schon viele Jahre zurück, es muss so um 1990 gewesen sein, auf den PCs lief noch DOS.

Ich hatte für unsere Vorlesung diverse C-Programme geschrieben, um Messdaten aus Vorlesungsexperimenten aufzubereiten und grafisch darzustellen, oder um bei Differentialgleichungen das Lösungsverhalten bei Parameteränderung zu zeigen. Das Computerbild wurde auf die Hörsaalmonitore gegeben, und später kam noch ein „Beamer“ dazu, ein auf den Overheadprojektor gelegtes LCD-Display.

Die Programme wurden aus der Kommandozeile gestartet und haben mehrere Semester ihren Dienst verrichtet. Bei einer Weihnachtsvorlesung kamen dann auch noch Texteinblendungen dazu, Powerpoint gab es ja noch nicht. Da hier das Rechnerbild permanent auf die Monitore gegeben wurde, war die Kommandozeile störend und ich habe ein Steuerprogramm in C geschrieben, das die jeweiligen Programme blind gestartet hat.

Das hat auch zweimal gut funktioniert, aber im dritten Jahr ist der PC abgestürzt. In der Zeit wurde der Hörsaal-PC ausgetauscht und es kam auch ein höheres DOS zum Einsatz. Da die Einzelprogramme liefen, hatte ich das Steuerprogramm in Verdacht, aber das war so übersichtlich, das da eigentlich nichts falsch sein konnte. Erschwerend kam noch hinzu, das der Fehler bei einer anderen Programmreihenfolge nicht oder an anderer Stelle auftrat. Ich habe da bestimmt eine Woche gesucht.

Irgendwann war ich dann so weit, dass das Programm, das vor dem Absturz lief, eine alte und vielfach eingesetzte FFT-Routine enthielt. Und in dieser war ein Array der Länge 1024 angelegt, wurde aber mit 1025 Werten belegt, also ein klassischer Bufferoverflow, der aber erst nach ca. 5 Jahren zugeschlagen hat.

Gruß
Jürgen

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

abbrechen