Hallo
Ein sehr grosses Delphi-Projekt erzeugt als 64bit Anwendung kompiliert in sehr seltenen, unregelmässigen und nicht reproduzierbaren Abständen an unterschiedlichen Stellen eine Zugriffsverletzung (
Access Violation). Wird die Anwendung 1:1 als 32bit Anwendung kompiliert, funktioniert alles über Tage und Monate absolut fehlerfrei ohne auch nur einemal einen Fehler zu haben.
Wie erwähnt, lässt sich der Fehler nie reproduzieren und der volle Funktionsumfang der Anwendung läuft manchmal über Stunden ohne eine Zugriffsverletzung. Dort wo der Fehler auftritt, tritt er bei einem weiteren Versuch nicht mehr auf. Es ist völlig zum verzweifeln und das Verhalten ist auch absolut unlogisch.
Kann mir vielleicht jemand einen Tipp geben wie man einem solchen Problem begegnet?
Was können die Ursachen dafür sein, dass die Anwendung absolut fehlerfrei läuft wenn diese als 32bit Applikation erzeugt wurde aber nicht als 64bit Version?
Tools wie EurekaLog wurden schon eingesetzt aber konnten leider nicht helfen, da der Fehler eben nie reproduzierbar ist und eh nur äusserst selten und nicht immer auftritt.
Die
Access-Violations werden protokolliert und alles was ich habe sind die Speicheradressen an denen der Fehler jeweils aufgetreten ist. Zum Beispiel so:
Zugriffsverletzung bei Adresse 0000000001BC2782 in Modul 'xyz.exe'
Wie findet man aufgrund dieser Information heraus wo der Fehler entstanden ist und was die Ursache dafür war? Und warum nur als 64bit Anwendung? Und was nützt die Information, wenn beim nächsten Versuch an selber Stelle keine Fehler entsteht?
Vielleicht hat jemand ein paar gute Tips was man noch tun könnte. Ich bin wirklich dankbar für jede Anregung.
Danke und Gruss
Delphitrixer