AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Grundsatzfrage Debuggen mit aktiven Threads
Thema durchsuchen
Ansicht
Themen-Optionen

Grundsatzfrage Debuggen mit aktiven Threads

Ein Thema von stahli · begonnen am 4. Feb 2021 · letzter Beitrag vom 2. Mär 2021
Antwort Antwort
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#1

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 13:29
TThreadI: Übernimmt (synchronisiert?) den Wert aus der obigen I-Schleife und versendet den.
Also synchronisieren kannst man beim Debuggen vergessen. Das wird doch nur ausgeführt wenn der Hauptthread ProzessMessages aufruft.

Denkbar währe I durch einen Record mit Zuweisungsoperatoren (in beide Richtungen) für Integer zu ersetzen.
Der Record müsste auch eine CriticalSection enthalten, die beim Zugriff auf die interne Variable verwendet werden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#2

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 14:17
Wegen einem winzigen Integer gleich mit Kanonen auf Spatzen?

Sowas kann direkt die CPU sicher (atomar) schreiben und auslesen kann man es direkt ganz normal.
MSDN-Library durchsuchenInterlockedIncrement/InterlockedExchange bzw. Delphi-Referenz durchsuchenAtomicIncrement/AtomicExchange
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 14:40
Danke Euch schon mal.

Bei meiner Realanwendung laufen die Threads ja wieder los, wenn ich nach einem Breakpoint das Programm mit F9 weiter laufen lasse.
Wenn der nächste Breakpoint vielleicht nach 2-3 Sekunden erreicht würde, würde das vermutlich reichen, um einen neuen Datenbestand raus zu schicken.

Die Frage ist, wie sich das "Weiterlaufen der Anwendung" darstellt, wenn die Zeitspanne durch F8 nur einige Millisekunden beträgt.
Ob in der Zeit mal ein Thread aktiv werden kann? Vermutlich wohl nicht.
Vermutlich wäre notwendig, wie von Himitsu vorgeschlagen, dass man der IDE auftragen können müsste, bestimmte Threads nicht zu pausieren...

Dann werde ich mein Vorhaben so nicht umsetzen können...


Alternative wäre ein Debug-Viewer (ähnlich dem für TStringList), der dann die Daten dann direkt innerhalb der IDE darstellt.
Muss ich mir mal überlegen, ob ich den Aufwand betreiben will. Vom Händling her ist das ja auch nicht so optimal.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.047 Beiträge
 
Delphi 12 Athens
 
#4

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 17:30
Hallo,

schon mal das neue IDE Plugin von Parnassus zum Multithreaded debuggen angeschaut?
Findet sich in GetIt package manager, könnte das evtl. können.

Einziger Nachteil: es hat wohl noch ein paar Bugs die unschöne Fehlermeldungen beim
Schließen von Projekten oder so erzeugen.

Entwickler hat aber versprochen diese zu fixen. Ist halt noch V1.00.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 18:33
Vielen Dank.

Das sieht ganz gut aus, ist aber für mich vielleicht etwas zu komplex.

Ich werde doch erst mal schauen, ob ich das als internen Objekt-Viewer umsetzen kann.
Dann wäre keine Thread-Kontrolle notwendig und keine Datenübertragung über TCP.

Vielleicht ist das (wenn die benötigten Threads nicht einfach weiter laufen können) dann doch die geschicktere Lösung...


Ich gebe bescheid, ob ich das so umsetzen kann...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#6

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 18:40
Alternativ ohne Thread, in deinem Code eine SendeFunktion überall einfügen/aufrufen, da kannst dann mit F8 drüber und deine Daten raussenden.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Grundsatzfrage Debuggen mit aktiven Threads

  Alt 4. Feb 2021, 18:44
Ja, aber das ist dann unpraktisch.
Dann muss man zuvor genau sagen, an welchen Stellen man den Datenblock einsehen möchte.
Das benötigte mehrfache Korrekturen im Code und mehrfaches Debuggen und genau das will ich vermeiden.

Ich möchte also bei jedem Debug-Schritt eine aktualisierte visuelle Aufbereitung der Daten sehen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  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 21:08 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