AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Windows-Meldung: Programm funktioniert nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

Windows-Meldung: Programm funktioniert nicht mehr

Ein Thema von Mossi · begonnen am 4. Apr 2018 · letzter Beitrag vom 4. Apr 2018
Antwort Antwort
Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 08:18
Delphi-Version: 7
Hallo zusammen,

ich bin gerade ein bisschen am verzweifeln.
Bei einer Anwendung erscheint bei ein paar einzelnen Kunden die Fehlermeldung "<Programm> funktioniert nicht mehr". Es sind wirklich nur ein paar einzelne Kunden und das Problem ist nicht bei mir nachstellbar. Bei den Kunden, bei denen das Problem aber auftritt kann man das Problem jederzeit wieder nachvollziehen, indem man das Programm einfach so ca. eine Stunde laufen lässt.

Meine erste Vermutung war ein Speicherleck. Da hab ich auch was gefunden, aber damit konnte ich das Problem leider nicht lösen (Das Speicherleck wäre ohnehin harmlos gewesen, aber wieder eine Fehlerquelle weniger)
Dann hab ich mir gedacht, vielleicht irgendein Thread, der einen Fehler wirft. Also mal alle Threads mit Protokollierung versehen, aber wieder nix.
Generell hab ich sehr viel Logging in der Anwendung und dabei ist mir aufgefallen, dass der Fehler auch im Ablauf vollkommen zufällig auftritt. Also nicht immer an der gleichen Stelle sondern eben irgendwo, wo er gerade lustig ist.

Für die Fehlerausgabe verwende ich MadExcept, aber das spuckt mir da nichts aus.
Ansonsten wird in der Software sehr viel mit Bildern gearbeitet. Die Bilder kommen aus einer Datenbank (Advantage) und haben sind entweder JPG oder ein paar wenige PNG. Für das Handling mit den PNG-Bildern verwende ich die GR32 Grafik-Bibliothek. Und eben jede Menge GDI-Anweisungen, aber bisher hatte ich damit eigentlich auch keine Probleme.

Der Fehler tritt aktuell nur bei Windows 7 Betriebssystemen auf. Wobei mir mein Bauchgefühl sagt, dass das Zufall ist.

Die Ereignisanzeige von Windows ist irgendwie auch wenig hilfreich
Code:
Name der fehlerhaften Anwendung: pc_professional.exe, Version: 16.0.0.50, Zeitstempel: 0x2a425e19
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0xb801eb11
ID des fehlerhaften Prozesses: 0x1998
Startzeit der fehlerhaften Anwendung: 0x01d3c692f34c5c56
Pfad der fehlerhaften Anwendung: <pfad>\pc_professional.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 974e1817-328e-11e8-aaff-bc05430820ea
Wie kann ich denn noch nach der Ursache des Fehlers suchen? Hat da vielleicht jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.368 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 08:22
kann man das Problem jederzeit wieder nachvollziehen, indem man das Programm einfach so ca. eine Stunde laufen lässt.
Klingt für mich verdächtig nach einem Timeout.
Wird vielleicht die Verbindung zur DB nach einer Stunde getrennt, wenn dort nichts gemacht wird?
Peter
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 08:38
Die einfachste Möglichkeit den "Programm funktioniert nicht mehr"-Dialog auftreten zu lassen ist wenn eine Exception das OnTerminate -Event eines Threads verlässt. Vielleicht hilft das?
  Mit Zitat antworten Zitat
Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 08:45
Danke für die Antworten.

kann man das Problem jederzeit wieder nachvollziehen, indem man das Programm einfach so ca. eine Stunde laufen lässt.
Klingt für mich verdächtig nach einem Timeout.
Wird vielleicht die Verbindung zur DB nach einer Stunde getrennt, wenn dort nichts gemacht wird?
Ich kann mir nicht vorstellen, dass es damit zusammenhängt. Es handelt sich dabei um eine filebasierte Datenbank und die verwenden wir schon seit mehr als 10 Jahren in dieser Art. Das Problem müsste außerdem dann nachvollziehbar sein. Desweiteren wird immer auf die Datenbank zugegriffen (alle drei Sekunden wird ein Bild abgerufen)
Ich hatte im Vorfeld schon die Vermutung, dass die Datenbank-Datei vielleicht beschädigt ist und habe diese nochmal neu kopiert und per Filehash geprüft.

Außerdem: Würde ein Timeout nicht eine vernünftige Exception werfen, die ich dann per MadExcept angezeigt bekomme?

Die einfachste Möglichkeit den "Programm funktioniert nicht mehr"-Dialog auftreten zu lassen ist wenn eine Exception das OnTerminate -Event eines Threads verlässt. Vielleicht hilft das?
Versteh ich jetzt glaub ich nicht ganz.
Du meinst also, dass in einem Thread im OnTerminate eine Exception auftritt und diese dann eben nicht korrekt abgefangen wird. Das kann ich mal prüfen, ob da überall ein sauberes Exception-Handlung drin ist. Würde das auch gelten, wenn OnTerminate gar nicht registriert ist?
Ist vielleicht ein Ansatz.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 08:51
Nein, OnTerminate muss schon zugewiesen sein.

Ich erkenne mich nur insofern wieder als ich genau so etwas auch mal hatte. Das Exception-Tracking der JCL hatte nichts mehr geloggt, aber das Programm verabschiedete sich definitiv mit "Programm funktioniert nicht mehr". Ursache war eine Exception im OnTerminate -Event eines Threads.
  Mit Zitat antworten Zitat
Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 09:00
War wohl nix... OnTerminate hab ich nur relativ selten benutzt und die haben alle ein sauberes Exception-Handlung oder machen nur simple Zuweisungen bei denen keine Exception auftreten kann.

Gibt es bei diesem Fehler nicht irgendwo einen Dump, den man analysieren kann? Ähnlich wie bei Windows Bluescreens.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 09:09
War wohl nix... OnTerminate hab ich nur relativ selten benutzt und die haben alle ein sauberes Exception-Handlung oder machen nur simple Zuweisungen bei denen keine Exception auftreten kann.

Gibt es bei diesem Fehler nicht irgendwo einen Dump, den man analysieren kann? Ähnlich wie bei Windows Bluescreens.
Ja..
C:\Users\Username\AppData\Local\CrashDumps

gruss
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
558 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Windows-Meldung: Programm funktioniert nicht mehr

  Alt 4. Apr 2018, 14:06
Das Programm fliegt schon vermutlich bei psiNewPrologScope im .net (Core). Woher auch immer diese Funktion stammt. Sie wird nur definiert in den Sourcen auf Github.

psiScope* psiNewPrologScope(unsigned LVnum, unsigned slotNum);

Wenn ein Programm so abschmiert, dann kotzt es in einer DLL ab.

Richtige Version der C/C++ runtime dlls installiert? Win64?


  Mit Zitat antworten Zitat
Antwort Antwort


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 01:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz