Re: Kann man TThreads debuggen? (FKBassPlayer von dizzy Prob
25. Apr 2006, 10:16
Hi,
Nicht sequentielles Programme zu debuggen ist nicht trivial. Dein Hauptproblem ist immer (wie sollte es anders sein), dass du nebenläufige Prozesse hast. Es gibt dabei sehr viele Möglichkeiten, was wann wie passieren kann. Da es aber nur Möglichkeiten sind, hast du dann ganz schnell das Problem, dass du nicht reproduzieren kannst, was gerade zu deinem Problem geführt hat (10.000 gute Läufe und ein Absturz währen nicht unrealistisch).
Am Besten ist (so dumm es klingt) einfach sauberen Code zu produzieren. Ich weiß, dass ist so ein toller Tipp, ich sollte ein Buch schreiben. Aber es ist dass A und O der Nebenläufigkeit. Je mehr du dir wirklich überlegst, zu was es alles nicht kommen kann, desto besser. Denn schon der Wechsel auf einen anderen Rechner kann bei nicht sequentiellen Programmen interessante Effekte haben.
Was das Debuggen angeht, so ist ein erst (sehr einfacher Weg), es mit einem Logger zu versuchen. Hierbei loggst du wirklich immer nur die stelle, an der sich dein Thread gerade befindet (also dort wo es sinnvoll ist), damit kannst du häufig schon die Region einschränken und eventuell den Fehler schon finden.
Es gibt auf jedenfall auch den Thread-View von Delphi, in dem du auch
Seit Delphi 7 kannst du zudem auch Threads einen Namen zuweisen. Damit lässt sich auch ein bestimmter Thread gezielter untersuchen. Aber wie gesagt, richtiges Debuggen von einem Thread ist schon etwas aufwändiger!
Gruß Der Unwissende
|