Delphi nutzt für Named-Threads eine
Exception und nichtmal das Programm selbst merkt sich den Namen.
Reagiert niemand auf diese
Exception und speichert sich das, oder hängt man sich erst später dran, ist der Name verloren.
Windows bietet seit sehr vielen Jahren eine
API dafür, worüber man den gesetzten Namen später und auch von extern abfragen kann.
Nja, ich Debugge die
IDE auch nicht permanent (wäre auch zu nervig, Aufgrund der vielen unnötigen Exceptions)
und hänge mich eben erst dran, nachdem es geknallt hat.
Das hängende Synchronize kann auch ein Folgefehler sein, weil ja der Mainthread nicht mehr reagiert.
Dennoch kann es auch sein, dass der Mainthread auf diesen Thread wartet und jener gleichzeitig auf den Mainthread.
Es war mal möglich CriticalSections zu loggen, bzw. sie loggen sich selbst,
aber seit Embarcadero immer mehr auf TMonitor setzt (das eine TMonitor, nicht das Andere

), ist es damit leider vorbei.
Gerade hier hätte die Sperre im Speichermanager mit CriticalSections die Möglichkeit geboten zu sehen wer wann wo wartet und wer das wann und wo gesperrt hat, aber es sind nunmal keine CS.
Ein Therapeut entspricht 1024 Gigapeut.