Seite 1 von 1

Windows GUI hängt sich auf/stürzt ab

Verfasst: 06.08.2025 17:57
von Vi-P
Hi, habe mit einem Programm von mir folgendes Problem:

Zweimal hat sich die Windows GUI während des Laufes eines von mir geschriebenen Programmes teilweise verabschiedet. Die betroffenen Rechner laufen sonst stabil und sind nicht überfrachtet, Windows 10. Es lässt sich dann nichts mehr anklicken, letztlich hilft dann ein Neustart. Das Programm läuft weiter ohne Probleme und übernimmt die vorgesehen Steuerungsaufgaben. Wenn ich das richtig mitbekommen habe, zeigt es auch noch den Ablauf an (Änderungen am Bildschirm). Nur Eingaben sind nicht mehr möglich. Das ganze passiert nur selten, was es schwierig macht, es nachzuvollziehen. Es kommt auch keine Fehlermeldung.

Das Programm benutzt Threads (thread-safe compiliert) von denen jeder mit je einem Netzwerkgerät die TCP/IP Kommunikation macht, aber keine GUI bedient und eine Schleife mit grundlegenden PureBasic GUI Funktionen, die dann Daten für die die Threads in Variablen ablegt. Ein wenig Init und Timing, das wars im Wesentlichen. Insgesamt alles recht statisch programmiert.

Weiß, sind jetzt nicht viel griffige Daten, sollte jemand 'trotzdem' eine Idee dazu haben, wäre super.

mfg Vi-P

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 06.08.2025 18:13
von mk-soft
Werden Daten von den Threads an die GUI übermittelt. Wenn Ja wie viele Daten ?
Läuft die GUI EventLoop ohne unterbrechung ?

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 07.08.2025 09:13
von dige
Ich würde erstmal mit dem ProcessExplorer monitoren, was denn so auf dem Rechner passiert.

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 07.08.2025 15:58
von Axolotl
Evtl. kann der Task Manager helfen.
Ansonsten wäre meine Empfehlung bei (dauerhaft durch-)laufenden Programmen ohne GUI eine Art Trace/Logging Funktion einzubauen. Natürlich Ein-/Ausschaltbar. Die Texte entweder in eine Datei schreiben oder mit Hilfe von (s.u.)
Ähnlich wie bei Debug und DebugLevel verschiedene Ebenen der zu loggenden Nachrichten.
Weitere Empfehlung von mir: Rückgabe-Werte von Proceduren auswerten.
Sorry, ich weiß alles keine wirkliche Hilfe bei einem fertigen Programm.

Code: Alles auswählen

; Hint: OutputDebugString_()   sends the message to DebugView() 
;
Procedure Trace(Message.s)
  OutputDebugString_(@Message) 
EndProcedure 

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 08.08.2025 13:45
von Vi-P
Erst mal danke für die Antworten. Hatte gestern eine kurze Antwort geschrieben. Das senden hat aber wohl aus welchen Gründen auch immer nicht geklappt.

@mk-soft: GUI aufrufe in Threads, das wäre natürlich der Klassiker. Nein die Threads fragen nur eine Variable ab, die auch der Hauptschleife bekannt ist. Wenn das was drin steht, macht die Hauptschleife, wird´s per TCP/IP versendet und die Variable wieder auf 'leer' gesetzt. Kollisionen beim Zugriff auf die Variable fange ich hierbei noch nicht ab, da diese Systembedingt nicht vorkommen sollten. Die GUI Loop läuft, so wie ich das mitbekommen habe, da ja noch Ausgaben erfolgen.

@dige: ProcessExplorer = Taskmanager ?

@Axolotl: Mit dem Taskmanager kann man halt ggf. das Programm abzuwürgen versuchen. Falls man im TM noch was anklicken kann ...

Das Problem ist glaube ich weniger, dass das Programm abstürzt, sondern Windows teilweise zum Absturz bringt. Das Hauptproblem ist allerdings, dass dies nur sehr sporadisch auftritt. Wenn das häufig auftreten würde, hätte ich die Sache schon eingegrenzt und gefixt bzw. falls nicht, mit einer konkreten Frage und dem problematischen Code hier gemeldet. Hatte halt die Hoffnung, dass jemand in das gleiche Problem gelaufen ist oder weiß wodurch das im Windows ausgelöst werden kann. Wie gesagt, das Programm selbst läuft durch, die GUI Aufrufe kehren auch zurück, sonst würde die Programmabläufe nicht in den Aktionen sichtbar werden.

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 08.08.2025 16:21
von Axolotl
IMHO ProcessExplorer und TaskManager sind zwei unterschiedliche Tools.
Ich kenne den ProcessExplorer aus der sysinternals suite.
Der TaskManager ist standard unter windows und zeigt z.B. den Speicherverbrauch. Der sollte über die Zeit nicht dauerhaft ansteigen.
Solche Dinge sind immer ein Indiz dafür, dass der Speicher nicht korrekt zurück gegeben wird.
Unter (modernen) Windows Versionen sind ja direkte Beinflussungen (fast) ausgeschlossen. (Anders als bei den ersten Windows Versionen, wo plötzlich keine Ressourcenn mehr verfügbar waren).

Schwierig hier weitere seriöse Einschätzungen/Prognosen abzugeben.
Trotzdem, vielleicht helfen dir ja meine krausen Gedanken weiter
+ Absturz oder fehlende (verzögerte) Rückmeldung
+ Zugriff auf (einzelne) Ressourcen, die für andere Apps blockiert sind/werden.
+ Welche Programme laufen (noch parallel) wenn der Fehler auftritt.

Re: Windows GUI hängt sich auf/stürzt ab

Verfasst: 08.08.2025 17:35
von jogo
Ich vermute auch einen falschen Speicherzugriff. Dafür spricht, daß dies nur sporadisch passiert. Vllt. ist irgendwo ein Speicherbereich zu knapp dimensioniert und du schreibst drüber hinaus - und je nachdem, ob da grade von anderen Programm was benutzt wird, kommt es zum Crash. Oder halt, wie Axcolotl schon schrieb, daß Speicher nicht freigegeben oder ungültig ist.