AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Debugger: Wait Chain

Ein Thema von Der schöne Günther · begonnen am 5. Dez 2013 · letzter Beitrag vom 10. Dez 2013
Antwort Antwort
Der schöne Günther
Online

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

Debugger: Wait Chain

  Alt 5. Dez 2013, 09:50
Mir fehlt das Windows-Allgemeinwissen. Wahrscheinlich ist die einfache Antwort "Nein".

Neulich hing meine Applikation. Ein WinAPI-Aufruf blockierte. Ich wusste nicht, warum. Die Spalte "Wait Chain" im "Thread-Status"-Fenster des Debuggers erzählte mir allerdings, dass es daran liegt, dass ein SendMessage an ein Fenster des Prozesses X, Thread Y aussteht. Das war eine großartige und extrem effektive Hilfe.

Kann ich so etwas auch? Dass, hielte man die Anwendung an, im Debugger eine Beschreibung sehen kann, was meine Threads grade so machen? Ob sie grade schlafen oder blockieren?

Ich habe leider kein Bildschirmfoto gemacht. Im Anhang etwas gestelltes.
Miniaturansicht angehängter Grafiken
wait-chain.png  

Geändert von Der schöne Günther ( 5. Dez 2013 um 09:50 Uhr) Grund: Neu: Jetzt mit Anhang!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Debugger: Wait Chain

  Alt 5. Dez 2013, 10:04
SendMessage ist eine blockierende Funktion. (PostMessage blockiert nicht, sondern platziert die Message nur in die Messagequeue)
Sie kehrt nicht eher zurück als dass die gesendete Message von Handler des Zielfensters bearbeitet wurde.
Solange dein Hauptthread nicht läuft werden keine Messages verarbeitet und SendMessage blockiert.
Sollte der Hauptthread seinerseits gerade auf den Thread (oder einen anderen Thread der gerade pausiert) warten ergibt sich ein Deadlock.
fork me on Github
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: Debugger: Wait Chain

  Alt 5. Dez 2013, 10:06
Danke für die Antwort

Das mit SendMessage/PostMessage und allem habe ich verstanden.

Mir ging es darum, rein für den Entwickler im Debugger anzeigen zu können "Dieser Thread macht gerade Spinlock weil ..." oder "Dieser Thread blockiert weil er auf Daten vom ComPort wartet". Wie im Bild.
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: Debugger: Wait Chain

  Alt 10. Dez 2013, 19:33
Noch jemand eine Idee?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Debugger: Wait Chain

  Alt 10. Dez 2013, 21:07
In

http://stackoverflow.com/questions/4...-installations

wird unter anderem aufgelistet welche Objekte in WTC erscheinen können:
Zitat:
According to the wait chain traversal document that David M linked to, WTC is available for the following synchronization objects:

* ALPC
* COM
* Critical sections
* Mutexes
* SendMessage
* Wait operations on processes and threads
Michael Justin
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: Debugger: Wait Chain

  Alt 10. Dez 2013, 21:20
Exzellent, das bringt mich weiter. Vielen Dank
  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 08:02 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