AGB  ·  Datenschutz  ·  Impressum  







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

Breakpoints in D7 nicht erreichbar

Ein Thema von Nic2012 · begonnen am 9. Sep 2013 · letzter Beitrag vom 10. Sep 2013
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Breakpoints in D7 nicht erreichbar

  Alt 9. Sep 2013, 15:08
Hallo,

das von Dir beschriebene Problem kenne ich auch, aber auch bei deutlich kleineren Units und DMFs.

Einige Programme kann ich nicht Debuggen, andernorts läßt sich der Inhalt von Variabeln beim Debuggen nicht anzeigen (angeblich alles wegoptimiert). Einen Grund für dieses Verhalten von D7 kenne ich nicht, aber ich habe eine Vermutung, die ich bisher weder beweisen noch widerlegen konnte.

Bei Programmen, die viele Units (unterschiedlicher Quellen) nutzen, scheint das Problem häufiger aufzutreten, als bei 100%igen "Eigenbauten".

Mein Verdacht fällt hier auf die Kompilerschalter {$D+} und {$D-}.

Unabhängig von den Projekteinstellungen kann man diese Beiden ja auch im Quelltext unterbringen. Kommt der Kompiler an einem der beiden Schalter "vorbei", so scheint für ihn ab dort die entsprechende Bedingung zu gelten. Hierdurch kann es passieren, dass an beliebigen Stellen das Debuggen funktioniert oder eben auch nicht. Dies scheint sich aber nicht nur auf die Unit auszuwirken, in der der Schalter steht, sondern auch auf die Units, aus denen die Unit mit Kompilerschalter aufgerufen wird. Hierdurch scheint dann das Debuggen in Units ab oder bis zu bestimmten Stellen zu funktionieren oder halt auch nicht.

Bei Deinem konkreten Fall könnte es unter Umständen eventuell vielleicht (also eine extrem wage Vermutung) möglich sein, dass kurz vor der Zeile, ab der die Breakpoints setztbar sind, beim Kompilieren eine Unit aufgerufen wird, in der der Schalter {$D+} steht. Irgendwo davor wird vermutlich eine Unit kompiliert, in der der Schalter {$D-} steht und deshalb keine Debuginformationen vorhanden sind.

Aber: Nix genaues weiß man nicht.

Ab und an scheint es zu helfen hinter die Uses-Anweisungen zusätzlich ein {$D+} einzufügen. Manchmal hilfts, aber nicht immer.

Eventuell hast Du ja damit Glück.
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
48 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Breakpoints in D7 nicht erreichbar

  Alt 9. Sep 2013, 15:13
Hi, ich hatte bei D6 mal das gleiche Problem.

Probleme haben jene Zeilen bereitet, deren Zeilenende nur aus #10 statt #13#10 bestand. Ab der ersten dieser Zeilen, waren die Debug-Punkte "verrutscht".
Kontrolliere das doch einmal in einem Editor, der die Zeilenende-Zeichen anzeigt, z.B. Notepad++ (da steht dann LF statt CRLF).
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#3

AW: Breakpoints in D7 nicht erreichbar

  Alt 9. Sep 2013, 15:37
Zitat:
Hast Du vielleicht mal Code aus dem Internet direkt in die Unit kopiert? Dann kann es an dieser Stelle auch zu Störungen kommen.

Dann schaue Dir doch die Stelle ab der die Breakpoints nicht mehr funktionieren mal genauer an. Ggf. Codeteil entfernen und prüfen, ob es dann funktioniert.
Oh, da sind zuviele Abhängigkeiten zu anderen Units vorhanden. Da müsste ich die ersten 80% vom Code entfernen. Wie gesagt nur die letzten 20% lassen sich debuggen.

Der gesamte Code dieser DM funktioniert fehlerfrei zur Laufzeit, aber eben keine Breakpoints. Ich habe nachgezählt aufgrund der TSmartQueries gehen mehr als 2500 Zeilen auf das Konto der Deklaration der Felder. Ist das zuviel für den Debugger ?

PS: {$D+} prophylaktisch hat nicht geholfen, obwohl einige 3rd-Party Units dabei sind, die {$D-} schalten.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Breakpoints in D7 nicht erreichbar

  Alt 9. Sep 2013, 16:10
Lies mal nochmal Beitrag #7 und #9.
Das Problem ist dass bestimmte Zeichen (unsichtbare Steuerzeichen, unvollständige Zeilenumbrüche) den integrierten Debugger stören, während der Compiler damit kein Problem hat.
Dadurch entstehen Abweichnungen zwischen den Sourcecodezeilen und den "blauen Punkten".
Die problematischen pas-Dateien müssen "gecleaned" werden.
Z.B. die pas-Dateien ins Notepad laden, ein Zeichen einfügen und wieder löschen damit Datei als verändert markiert ist.
Mit dem Cursor bis zur letzten Zeile scrollen und wieder abspeichern.
Darauf achten, dass keine überlangen Zeilen im Sourcecode sind.
fork me on Github
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#5

AW: Breakpoints in D7 nicht erreichbar

  Alt 10. Sep 2013, 11:31
Zitat:
Die problematischen pas-Dateien müssen "gecleaned" werden.
Habe es genauso gemacht wie beschrieben, aber im Ergebnis kein Unterschied. Ich vermute hier liegt die Ursache im strukturellen Bereich.
Ich werde den Code ausdünnen und auf kleinere DMs thematisch und strukturell aufteilen.

Nochmals herzlichen Dank für das tolle Feedback.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.810 Beiträge
 
Delphi 12 Athens
 
#6

AW: Breakpoints in D7 nicht erreichbar

  Alt 10. Sep 2013, 12:31
Hmmm, das hat hier bisher noch keiner erwähnt, aber mit IFDEFs lassen sich auch ganze Codeblöcke ausblenden. Danach hast Du hoffentlich auch geschaut?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#7

AW: Breakpoints in D7 nicht erreichbar

  Alt 10. Sep 2013, 14:16
Danke für den Hinweis, aber die IFDEF sind nur sehr sporadisch übers Projekt verteilt und in dem betreffendem Datenmodul sogar auskommentiert.
  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 00:07 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