AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi VCL Blockade - Verursacher ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Blockade - Verursacher ermitteln

Ein Thema von AJ_Oldendorf · begonnen am 9. Mai 2025 · letzter Beitrag vom 9. Mai 2025
Antwort Antwort
AJ_Oldendorf

Registriert seit: 12. Jun 2009
442 Beiträge
 
Delphi 12 Athens
 
#1

VCL Blockade - Verursacher ermitteln

  Alt Heute, 10:53
Hallo zusammen,
in einer sehr großen und umfangreichen Anwendung mit vielen Threads, kommt es zu gewissen Zeiten vor, dass die VCL für ein paar Sekunden hängt.
Ich habe eine Vermutung voran das liegt, möchte aber weitere Analysen betreiben.
Meine Synchronize Aufrufe aus des Threads werden alle protokolliert. In dem Protokoll sehe ich auch, die Blockaden für die Zeit x.
Ich nutze viele Fremdkomponenten und zugekaufte Bibliotheken.
Meine Frage ist, kann ich irgendwie herausbekommen, wer der Verursacher der Blockade ist?
Meine Threads und deren ThreadID habe ich alle protokolliert, wie bekomme ich allerdings zum Zeitpunkt der Blockade heraus, wer gerade die VCL blockiert? Das meine eigenen Synchronize Aufrufe dann warten, sehe ich selber im Protokoll. Ich vermute hier Fremdkomponenten, möchte da aber sicher gehen bevor ich evtl etwas anpasse bzw an den Hersteller herantrete.
Ich hoffe, ihr habt da eine Idee. Danke
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.971 Beiträge
 
Delphi 12 Athens
 
#2

AW: VCL Blockade - Verursacher ermitteln

  Alt Heute, 11:07
Sowohl MadExcept als auch Eurekalog können ein Hängen des Hauptthreads erkennen. Du musst lediglich den Timeout gering genug einstellen, damit diese bei der bekannten Blockadedauer anspringen. Das klappt natürlich nur, wenn es nicht nur um 3 Sekunden oder so geht.

Auf jeden Fall können beide Stracktraces aller laufenden Threads erzeugen, auch manuell. Du könntest also auch selbst einen Überwachungsthread bauen, der dann den Report manuell auslöst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
442 Beiträge
 
Delphi 12 Athens
 
#3

AW: VCL Blockade - Verursacher ermitteln

  Alt Heute, 11:43
Hi Sebastian, ich habe mit beiden Tools noch nie gearbeitet. Kenne diese nur vom Namen.
Diese werden in die laufende Anwendung mit rein compiliert und dann löst man das aus oder wie läuft das genau?
Nein, es handelt sich nicht nur um 3s (eher Richtung 20s) aber meine Threads hängen dann eben teilweise im Synchronize Aufruf fest.
Kannst du mir das mit den beiden Tools näher erklären oder gibt es irgendwo eine Anleitung dazu?
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
270 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: VCL Blockade - Verursacher ermitteln

  Alt Heute, 12:10
Hi,

Ich kennen und nutze Eurekalog, das wird mit reinkompiliert und kann konfiguriert werden, u.a. kann man auch einen Timeout definieren, bei dessen auftreten ein Fehlerbericht erstellt wird. Das ganze lässt sich z.B. mit mantis koppeln, so dass die Berichte direkt dort ankommen.

Tomy
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
270 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: VCL Blockade - Verursacher ermitteln

  Alt Heute, 12:13
Ein Bild dazu
Miniaturansicht angehängter Grafiken
eureka.png  
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.971 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL Blockade - Verursacher ermitteln

  Alt Heute, 21:31
Die grundsätzliche Funktionalität sieht bei beiden Tools genauso aus. Hier bei madExcept (check for frozen main thread):
http://help.madshi.net/madExceptSettings1.htm
Bei Eurekalog hast du noch mehr Einstellungen, welche Threads dich interessieren.
Sebastian Jänicke
AppCentral
  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 23:38 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