AGB  ·  Datenschutz  ·  Impressum  







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

Eklatante Probleme mit Debuggen

Ein Thema von freimatz · begonnen am 26. Jun 2023 · letzter Beitrag vom 6. Jul 2023
Antwort Antwort
Seite 1 von 3  1 23      
freimatz
Online

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#1

Eklatante Probleme mit Debuggen

  Alt 26. Jun 2023, 12:42
Hallo zusammen,
wir (ca. 10 Entwickler) haben seit Jahren Probleme mit dem Debuggen, seit einiger Zeit sind diese eklatant. Es äußert sich so, dass der Debugger bei Breakpoints nicht mehr anhält. (Auch gibt es keine blauen Punkte.)

Das Problem tritt nicht immer auf. Es gibt jedoch bestimmte Packages, bei denen es in 98% der Fälle so ist. Wir behelfen uns dann mit Logging über CodeSite, das ist jedoch Programmieren wie vor 30 Jahren.
Das Problem in einem abgegrenzten Umfeld zu reproduzieren ist uns noch nicht gelungen. Wir arbeiten derzeit mit 64-Bit, Delphi 11.3, es gibt mehr als 100 Module und mehrer Millionen Zeilen Quellcode.

Wir haben inzwischen ein umfangreiches internes Dokument mit Anleitungen was man alles versuchen kann, damit das Debuggen geht. (Build nur als Release und nur benötigte Module mit Debug, Löschen von rsm-Dateien, Delphi neu starten, Option "Load all Symbols" aus und Module explizit angeben, anderes Startprojekt, etc. ...). Das hilft oft nach einigen Versuchen, ist aber extrem hinderlich. Und bei dem oben erwähnten Modulen hilft es eben gar nicht.

EMB ist leider auch nicht sehr hilfreich.
Der Support hatte einen Fall mal analysiert und einen Workaround (anderes Startprojekt). Ein Fehler in einem Log wurde nicht weiter thematisiert. Der Support weigert sich ausserdem bei uns per Videotool reinzuschauen - aus irgendwelchen datenschutzrechtlichen Gründen. Ohne ein konkretes reproduzierbares Problem ist auch nicht etwas zu erwarten.
Marco Cantu und David Millington wissen Bescheid. Es wurde mal geschrieben, dass Verbesserungen beim Debugger in einer nicht näher spezifizierte Zukunft angestrebt seien. Weitere Hilfeanfragen blieben unbeantwortet.

Habt Ihr noch eine Idee was wir da machen könnten?

In der Zwischenzeit rate ich davon ab Delphi für neue unternehmenskritische Projekte zu verwenden. Es geht zwar wohl meistens gut, wenn man aber in diese Situation kommt, wird es kritisch.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Eklatante Probleme mit Debuggen

  Alt 26. Jun 2023, 14:25
Ein Bekannter hatte ebenfalls einige Probleme beim Debuggen. Auch da fehlt immer wieder der Zugriff auf die Debuginformationen, so dass er keine Haltepunkte setzen kann usw., was sich also ähnlich anhört.

Meine Idee war, den Remote Debugger zu verwenden. Das hat dann auch geklappt. Da ließen sich die Haltepunkte normal setzen, debuggen, alles lief. Sprich er hat einfach lokal den Remote Debugger gestartet und verwendet dann "Prozess laden" mit 127.0.0.1 als Host zum Debuggen. Das ist zwar nicht ideal, funktioniert bei ihm aber deutlich besser als direkt mit dem Debugger.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#3

AW: Eklatante Probleme mit Debuggen

  Alt 26. Jun 2023, 14:31
Habt Ihr noch eine Idee was wir da machen könnten?
Für das Problem mit dem Debuggen hat Sebastian einen möglichen Weg beschrieben. Wenn du am Logging interessiert bist, ist mORMot einen Blick wert. In diesem Thread habe ich etwas dazu geschrieben.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Eklatante Probleme mit Debuggen

  Alt 26. Jun 2023, 14:32
Wobei bei Win64 doch intern eigentlich sowieso der RemoteDebugger benutzt wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Eklatante Probleme mit Debuggen

  Alt 26. Jun 2023, 20:06
Gut, in dem Fall war es 32-Bit. Ob es bei 64-Bit einen Unterschied macht, weiß ich nicht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
bobokonijn

Registriert seit: 14. Jun 2023
1 Beiträge
 
#6

AW: Eklatante Probleme mit Debuggen

  Alt 27. Jun 2023, 07:34
Was für mich gut funktioniert in solchen Fällen ist den Debugger erst *nach* Programmstart mit dem Programm zu verbinden (Run-> Attach To Process). Ggf muss man im Programm eine Messagebox einbauen damit das Programm absichtlich anhält und man die Zeit hat, den Debugger zu verbinden.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Eklatante Probleme mit Debuggen

  Alt 27. Jun 2023, 08:54
Was für mich gut funktioniert in solchen Fällen ist den Debugger erst *nach* Programmstart mit dem Programm zu verbinden (Run-> Attach To Process). Ggf muss man im Programm eine Messagebox einbauen damit das Programm absichtlich anhält und man die Zeit hat, den Debugger zu verbinden.
Oder:
Delphi-Quellcode:
while not IsDebuggerPresent do
  Sleep(10);
Das funktioniert auch bei Diensten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (27. Jun 2023 um 09:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Eklatante Probleme mit Debuggen

  Alt 27. Jun 2023, 11:39
Was für mich gut funktioniert in solchen Fällen ist den Debugger erst *nach* Programmstart mit dem Programm zu verbinden (Run-> Attach To Process). Ggf muss man im Programm eine Messagebox einbauen damit das Programm absichtlich anhält und man die Zeit hat, den Debugger zu verbinden.
Oder:
Delphi-Quellcode:
while not IsDebuggerPresent do
  Sleep(10);
Das funktioniert auch bei Diensten.
Interessante Methode, aber sie birgt die Gefahr, dass man einfacher vergessen kann, es wieder zu löschen. Dann wundert man sich, weshalb das Programm hängt, kann das aber im Debugger nicht nachvollziehen, und sucht sich einen Wolf, nur um am Ende mit dem Kopf auf der Tischkante zu landen, wenn man seine Dummheit bemerkt hat.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Eklatante Probleme mit Debuggen

  Alt 27. Jun 2023, 11:56
Das ist natürlich richtig, aber wenn man alle Änderungen überprüft und z.B. vor und nachher ein paar Leerzeilen und/oder eine Compilerwarnung einfügt, kann das kaum passieren.

Im Dienst fällt mir z.B. gar keine andere sinnvolle Variante ein, wenn man den Start des Dienstes debuggen möchte.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Eklatante Probleme mit Debuggen

  Alt 27. Jun 2023, 13:10
Da der normale Code des TService sofort wieder stoppt, wenn das Programm nicht aus dem Service-Host gestartet wird, hatte ich den Code mal etwas nachgebaut.
Dann noch ein kleines Dummy-Fenster, damit man den Dienst "sieht" und was Einfaches zum Beenden hat.

Somit lässt es sich auch einfach über Debugger oder normals starten. (beim Kunden auch mal "manuell" und mit einigen Logausgaben im Consolenfenster, falls es dort mal wieder Probleme beim Starten gibt)
Wenn nur über Debugger, dann ginge auch IsDebuggerPresent, aber hier einfach mit einem Parameter gelöst, damit es auch einzeln starten kann.


Das TService vom Windows ist eh etwas "beschränkt".
z.B. läßt sich der Dienst nur einmal registrieren&installieren (außer man schmuggelt z.B. noch einen Start-Parameter mit rein)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Jun 2023 um 13:27 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:55 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