AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fehlermeldung beim Herunterfahren

Fehlermeldung beim Herunterfahren

Ein Thema von CodeX · begonnen am 16. Apr 2015 · letzter Beitrag vom 16. Apr 2015
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

Fehlermeldung beim Herunterfahren

  Alt 16. Apr 2015, 14:14
Ich habe hier eine etwas komplexere Delphi-Anwendung, die bei ein paar ganz wenigen Anwendern beim Herunterfahren von Windows eine Fehlermeldung produziert und damit den Herunterfahrvorgang anhält.

Die Fehlermeldung lautet:
Die Anwendung in 0x00123456 verweist auf Speicher 0x01234567. Der Vorgang read konnte nicht im Speicher durchgeführt werden.
Klicken Sie auf „OK“, um das Programm zu beenden.

Nun ist es so, dass ich den Fehler bei keinem der vielen Versuche reproduzieren konnte.
Der Fehler tritt bei den betroffenen Personen anscheinend bei fast jedem Herunterfahren auf; jedoch nie beim normalen Beenden der Anwendung.
Die Anwendung läuft standardmäßig im Tray, wird vom Anwender vor dem Herunterfahren also so gut wie nie manuell beendet.
Es scheinen nur Windows 7 Anwender betroffen zu sein.
Ich habe versucht, den Fehler mit madExcept zu lokalisieren, jedoch tritt der Fehler bei Verwendung von madExcept nicht mehr auf! (nein, es ist keine Lösung, madExcept dauerhaft drin zu lassen).

Ich kann mir nicht erklären, womit der Fehler zusammenhängen könnte. Ggf. wird irgendeine Ressource beim Herunterfahren unerwartet freigegeben, wo die Anwendung aber trotzdem noch darauf zugreift!?

Nun bin ich leider ziemlich ratlos, was ich noch tun kann. Bei den betroffenen Anwendern kann ich nicht debuggen. Besteht irgendeine andere Möglichkeit, etwas mehr Details zur Fehlermeldung zu erhalten, die weiterhelfen? Oder lässt sich notfalls irgendein Workaround implementieren, dass beim Beenden der Anwendung grundsätzlich keine Fehler mehr geworfen werden? Ich weiß nicht, wo ich den try except Block überhaupt drumherum machen könnte. Das würde zwar nicht die Ursache beheben, aber in Anbetracht der Tatsache, dass dies wohl irgendeine Sonderkonstellation ist, die nur ganz wenige Anwender betrifft, vielleicht eine gangbare Lösung.
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.059 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fehlermeldung beim Herunterfahren

  Alt 16. Apr 2015, 15:33
Oder lässt sich notfalls irgendein Workaround implementieren, dass beim Beenden der Anwendung grundsätzlich keine Fehler mehr geworfen werden? Ich weiß nicht, wo ich den try except Block überhaupt drumherum machen könnte. Das würde zwar nicht die Ursache beheben, aber in Anbetracht der Tatsache, dass dies wohl irgendeine Sonderkonstellation ist, die nur ganz wenige Anwender betrifft, vielleicht eine gangbare Lösung.
Delphi-Referenz durchsuchenTApplication.OnException
Hier ranhängen und ggf. erden?!
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Fehlermeldung beim Herunterfahren

  Alt 16. Apr 2015, 15:46
Tja, was passiert denn beim Runterfahren?
  • Programme schreiben Konfiguration/Status in die Registry oder Datei (Netzwerk)
  • melden sich irgendwo ab
  • ..

Da Du extra WIN7 schreibst:
Ist es eigentlich (historisch) eine XP Anwendung?
UAC Verhalten geprüft?
registry 64 / 32 Zugriff unter Kontrolle?

Da Du nicht schreibst, was das Programm eigentlich macht und welche Ressourcen es nutzt, ist es ziemlich spekulativ in der Richtung weitere Vorschläge zu machen.

Aber die genannten Punkte könnte man abklopfen beim Versuch der Fehlerreproduktion. Ein Logging Ansatz ist natürlich nie verkehrt, besonders, wenn der Fehler reproduzierbar ist.
Gruß, Jo
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehlermeldung beim Herunterfahren

  Alt 16. Apr 2015, 16:07
Tja, was passiert denn beim Runterfahren?
Beim Beenden der Anwendung werden ein paar Aktionen durchgeführt (z.B. Event-Handler abgemeldet, Objekte freigegeben, etc.), aber das habe ich schon mit einer Log-Ausgabe schon ausgelotet. Die eigenen Code-Blöcke laufen alle problemlos durch. Der Fehler tritt erst danach auf, also in keinem eigenen Code mehr.

Da Du extra WIN7 schreibst:
Ist es eigentlich (historisch) eine XP Anwendung?
UAC Verhalten geprüft?
registry 64 / 32 Zugriff unter Kontrolle?
Ja, alles schon längst für 7/8/10 und 32/64 angepasst. Ich kenne auch keinen Fall, wo dieser Fehler mit Windows 8 (oder XP) auftritt. Vielleicht ist das auch nur Zufall. Ich habe 7 nur deshalb erwähnt, falls irgendjemand mal ein ähnliches Problem hatte.

Delphi-Referenz durchsuchenTApplication.OnException
Hier ranhängen und ggf. erden?!
Da habe ich irgendwie überhaupt nicht dran gedacht, weil ich Exceptions normalerweise nur lokal behandle. Danke! Das wird wohl der nächste Ansatzpunkt sein. Muss mal schauen, ob ich der Exception damit etwas mehr Informationen entlocken kann. Wenn ich die Ursache nicht finde, sollte es damit aber immerhin möglich sein, Exceptions beim Herunterfahren zu unterdrücken (zuvor per WM_QUERYENDSESSION erkennen).

Bin gerne auch noch für andere Vorschläge offen!
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz