P
Holgrich schrieb:
Sobald ich etwas anders mache (z.B das Programm schrittweise mit GDB ausführe oder mir den Index ausgeben lasse läuft das Programm wie geschmiert). Kann das daran liegen, dass das Programm ohne Einflüsse "zu schnell" durchläuft und es deswegen einen Speicherfehler gibt?
Nee, es liegt mit Sicherheit an dem Debug- Code, den die DBG- Session einbaut, dadurch schaut ein Zeiger auf eine zufällig erlaubte Stelle, auf die Du zugreifst.
Eine der wenigen Möglichkeiten, durch zu schnelle Ausführung zum Tod zu gelangen, haben die TurboPascal- Macher in der Unit CRT gezeigt. Um Soft- Timer usw. zu justieren, haben die in einer Schleife runtergezählt und das Ergebnis zur Division benutzt. Als die PCs so die 233 MHz- Welt verlassen haben, war das Ergebnis Div-by-zero, mit der Folge, daß die Programme nicht mal mehr gestartet sind.
Aber das ist eine seltene Idiotie und weil die CRT ohne Debug- Code war, hat der Debug- Mode nichts geändert.
Such' nach 'nem Pointer, der in die Landschaft guckt, macht mehr Sinn...