Zitat:
Dir ist aber schon klar, dass da jetzt immer noch ein Fehler im Code vorliegt, oder?
Das ist in etwa so sinnvoll wie das generelle Abschalten des Range-Checking, weil das sporadisch zu unerklärlichen Fehlern führt.
Ist mir schon klar, aber wie schon vorher geschrieben den Fehler verursacht eine Fremd-Komponente.
Ich habe denen ein Beispielcode gesendet, der läuft dort aber ohne Probleme.
Das Problem an der Geschichte ist, dass ASLR dazu führt, dass z.B. Fehler auffallen, die bisher nur nicht aufgefallen sind, weil an fehlerhaft zugegriffenen Speicherpositionen Werte standen, die keinen Fehler verursachten. Diese Speicherfehler müssen aber nicht unbedingt an der Stelle entstehen, an der sie auftreten.
Heißt: Nur weil der Fehler in einer externen Komponene auftritt, heißt das nicht, dass er auch dort verursacht wird. Es kann also durchaus sein, dass der Fehler in dem eigenen Code liegt und sich nur in einer solchen Komponente äußert.
Finden lassen sich solche Fehler auf zwei Wegen:
Entweder man kann vorhersagen, welche Speicherstelle falsch angesprochen wird, dann kann man miit Datenhaltepunkten arbeiten.
Oder es bleibt (neben sehr aufwendigen Analysen, die man eher nicht machen möchte) nur folgender Weg: Man entkernt die Anwendung bis man den Fehler nicht mehr reproduzieren kann. Dann macht man die Änderung rückgängig, bis man es wieder reproduzieren kann, und entfernt dann andere Teile.
Am Ende hat man entweder ein Demoprogramm für einen externen Hersteller oder man hat den Fehler gefunden.