Forum: Programmieren allgemein
by jaenicke,
21. Feb 2021
Zufall heißt in diesem Fall Pseudozufall. Und das kann heißen, dass es ohne weitere Änderungen am Code immer funktioniert, aber eine andere Änderung dann plötzlich zu Problemen führt, obwohl diese eigentlich gar nichts damit zu tun hat.
Es ist ja nicht so, dass solche Probleme nicht bekannt wären. Ich habe nach solchen Problemen schon viele Stunden gesucht inkl. Analyse von Speicherdumps usw.,...
Forum: Programmieren allgemein
by jaenicke,
20. Feb 2021
Das ist natürlich deine Entscheidung. Ich kann nur anbieten es zu analysieren. Im Zweifelsfall lohnt ein Vergleich des generierten Assemblercodes.
Forum: Programmieren allgemein
by jaenicke,
20. Feb 2021
Beispielsweise könnte der Typ von TMDBInfoDlgContH falsch sein und so der Wert abgeschnitten werden, wenn der Variablentyp zu klein für den Wert ist. Wie gesagt, das ist nur ein Beispiel, aber es gibt schon diverse Varianten, bei denen der Code eigentlich gar nicht korrekt ist, aber zufällig doch geht.
Da du nun weißt wo der Fehler auftritt:
Kannst du nicht den ganzen anderen Code rauswerfen...
Forum: Programmieren allgemein
by jaenicke,
20. Feb 2021
Es gibt zwei Möglichkeiten:
- Es ist wirklich ein Bug im Compiler. Gab es schon, ist aber recht selten.
- Die Optimierung sorgt dafür, dass im Speicher etwas anderes steht oder ähnliches, so dass ein Bug dann erst zutage tritt. Das habe ich schon mehrfach, auch in Forenbeiträgen hier, gesehen.
Hast du die Bereichsprüfung aktiv? Sagt FastMM etwas im FullDebugMode?