@Lemmy: Das ist wohl richtig, aber leider muss ich dort trotzdem hin um eine mit diesen Tools kompilierte Version zu installieren. (Leider kein Fernzugriff, daher ist auch Remote-Debugging so eine Sache.)
@Günther: Genau das habe ich mich auch gefragt. Wenn sämtliche try..excepts unbeeindruckt bleiben (ich habe wirklich stumpf um ALLE Methoden von begin bis end ge-try-ed), habe ich da auch Zweifel.
@jobo: Gleich bei 3 PCs (von Siemens, die ihre PCs in der Regel vorm Ausliefern diversen Stresstests unterziehen)? Klar, nichts ist unmöglich, aber das wäre schon irre. Der Speicherverbrauch bleibt relativ konstant. Das Programm lief ja sogar schon 2 Jahre (identisches Kompilat auch probiert) auf den alten PCs dort ohne Mucken.
@zagota: Ja, dort wird der o.g. Fehlercode mit Bezug auf mein Programm und die ntdll.dll protokolliert. Leider sonst keine weiteren hilfreichen Infos, und ich kann leider keinen genaueren Dump produzieren ohne vor Ort zu sein. Im selben Eintrag war auch noch ein Verweis auf "0xffffbaad" (Unter "P4" oder so), welches mir bekannt vorkam. Leider produzierte Google bei einer kombinierten Suche nach dem o.g. Code und diesem keine erkennbar relevanten Ergebnisse, und die Ursachen blieben in den meisten Foren im Dunkeln. Oftmals wurde das betroffene Programm neu installiert oder geupdated womit der Fehler verschwand, aber eine konkrete Ursache fand ich nicht. Leider habe ich diese Option nicht =)
Den Kompatibilitätsmodus habe ich noch nicht versucht. Leider krankt aber auch das daran, dass ich das erst machen kann wenn ich wieder Zeit habe da hin zu fahren. (Leider kein kundiges Personal vor Ort, alles Anlagenfahrer die schon mit der bloßen Existenz eines PCs an ihrem Arbeitsplatz überfordert sind.) Zumal es wie gesagt auf mindestens einem anderen Win7 64 PC (beim selben Kunden aber in einem anderen Werk) funktioniert.
Arrays kommen nur sehr vereinzelt vor, und sie sind alle statisch. Das war auch meine erste Idee, vergessen zu sagen. Sorry! Das größte ist 4096 Bytes lang, und es gibt keine Methode die mehrere Arrays nutzt. Ansonsten werden sowohl in Parametern als auch lokalen Variablen ausschließlich elementare Datentypen oder Objekte verwendet. Mit der Ausnahme von einer Hand voll Strings, die ich aber auch mit einer Längenprüfung versehen habe, und die ja ohnehin eigentlich auf dem Heap landen sollten. Es gibt nichtmals von mir erstellte Threads, alles nur im Main-Thread.
Es gibt
eine Operation die per Timer zyklisch läuft. Es wird mit einer SPS via Sockets kommuniziert. Dieses Modul setzen wir allerdings in praktisch identischer Form in zig Programmen bei diversen Kunden auf allen möglichen Windows-Versionen seit 10+ Jahren ein, und hatten dieses Problem noch nicht.
Es werden in diesem Fall sogar vergleichsweise mickrige Datenpaketchen ausgetauscht, und die Buffer werden ebenfalls bzgl. ihrer Länge überprüft. Wenn es ein "normaler" Stack-Overflow wäre, bin ich es auch eigentlich gewohnt eine saubere Meldung der
RTL zu bekommen, kein "wortloses Wegschießen".
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)