AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Kann man TThreads debuggen? (FKBassPlayer von dizzy Probl.)
Thema durchsuchen
Ansicht
Themen-Optionen

Kann man TThreads debuggen? (FKBassPlayer von dizzy Probl.)

Ein Thema von Der_Ventilator · begonnen am 24. Apr 2006 · letzter Beitrag vom 25. Apr 2006
Antwort Antwort
Der_Ventilator

Registriert seit: 11. Apr 2004
Ort: Kanada
136 Beiträge
 
Delphi 2010 Professional
 
#1

Kann man TThreads debuggen? (FKBassPlayer von dizzy Probl.)

  Alt 24. Apr 2006, 20:50
Hi, ich habe mit den FKBassPlayer von dizzy und seiner Visualisierung einen Mp3 Player gebaut.
Dabei wird ein 2. Thread erzeugt, der die Visualisierung ausgibt.


Nun erzeugt das Programm manchmal die Meldung

---------------------------
Thread-Fehler: Zugriff verweigert (5)
---------------------------
OK
---------------------------

Anscheinend tritt im Thread ein Fehler auf, sodass dieser abstürzt und ich ihn nicht mehr schlafen legen kann.

Auch wenn es innerhalb von Delphi ausgeführt wird, zeigt mir Dehiphi nicht wie sonst bei Fehlern die Stelle im Quelltext an, an der der Fehler aufgetreten ist. Sondern es macht einfach nichts.
Liegt es daran, dass der Fehler in einem Thread sein könnte und da Delphi nicht hineinschauen kann?

Wie kann ich diese auch für Delphi zugänglich machen?

Die Execute Prozedur ist riesig und ich weis nicht wie ich den Fehler finden kann ohne dass mir Delphi dabei hilft.

Oder kann man irgendwie rausfinden ob ein Thread hängt und ihn dann irgendwie beenden? (Auch wenn das den Fehler nicht beheben würde)
Codito, ergo sum. - I code therefore I am
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Kann man TThreads debuggen? (FKBassPlayer von dizzy Prob

  Alt 25. Apr 2006, 09: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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Kann man TThreads debuggen? (FKBassPlayer von dizzy Prob

  Alt 25. Apr 2006, 10:21
Zitat von Der_Ventilator:
Zitat:
---------------------------
Thread-Fehler: Zugriff verweigert (5)
---------------------------
OK
---------------------------
Anscheinend tritt im Thread ein Fehler auf, sodass dieser abstürzt und ich ihn nicht mehr schlafen legen kann.
Ja, aber es ist kein Fehler im Code. Der Fehler deutet daraufhin, dass du auf eine Datei zugreifst, für die du keine Zugriffsrechte hast. Eventuell wird der Fehler auch ausgelöst, wenn eine Datei exklusiv geöffnet ist, da bin ich mir aber nicht so sicher.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 01:26 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