Breakpoints funktionieren nicht -> DSK löschen
Kennt das wer? Irgendwann funktionieren die Breakpoints nicht mehr und werden grün. Dann muss ich "Alles schließen" + die DSK Datei löschen. Dann geht´s wieder für ne Weile.
Weiß da jemand Abhilfe? Danke! |
AW: Breakpoints funktionieren nicht -> DSK löschen
Die Breakpoints werden in der Tat in der DSK gespeichert. Allerdings entweder in der vom Projekt oder der von der Projektgruppe - je nachdem, was man geöffnet hat (die virtuelle Projektgruppe, die beim Öffnen eines Projekts erzeugt wird, zählt hier nicht).
Es ist übrigens ratsam, die Vorgaben für das DCU-Verzeichnis $(Platform)\$(Config) zu beherzigen. Damit vermeidet man das Mischen von DEBUG- und RELEASE-DCUs, das genau das beschriebene Verhalten hervorrufen kann. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Wenn ich "Projekt-Dektop speichern" abwähle, genügt ein bloßes Alles schließen und Neu öffnen. Es ist auch egal, ob es schon Breakpoints gibt oder nicht, irgendwann sind sie nicht mehr aktiv. Ich hab ja fast das Gefühl, dass das etwas mit der Fensteranordnung zu tun hat. So als ob es da beim Auslesen der Eigenschaften ein Porblem gibt + die Breakpoints nicht mehr gelesen werden. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Hab das Problem nur ich?
Gibt es irgendwo ein LOG, in dem man nach Problemen suchen kann? |
AW: Breakpoints funktionieren nicht -> DSK löschen
Habe ich in der Form eigentlich noch nicht beobachtet...
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Ich glaube, es hat mit dem Hin- und Herschalten zwischen Standard+Debug Layout zu tun. Iregendwas mit den Fenstern oder derem Layout.
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Hallo
Bei mir funktionieren die Breakpoints auch nicht. Ich habe parallel 10.2.3 und 10.3.3 installiert und bei beiden funktioniert es nicht, weder bei Delphi noch bei C++ Builder. Ich bin im Debug-Mode. Dann würde ich erwarten, dass bei einem neuen Projekt mit Default-Einstellungen und Debug-Mode die Breakpoints funktionieren. Irgendwas muss man wohl noch einstellen. Ich kann nur rote Punkte setzen, aber nicht rote Punkte mit Häkchen. Müsste es blaue Punkte am linken Rand haben? Komme mir ziemlich blöd vor!! Bei Delphi7 oder BCB6 war das nie ein Problem! Jetzt wollte ich mich endlich mit den neuen IDE's anfreunden und nun dies! Ich speichere meine Projekte nicht standardmässig unter C:\Users\[Username]\Documents\Embarcadero\Studio\Projects ab. Kann das ein Problem sein? Vielen Dank für eure Hinweise, Rolf |
AW: Breakpoints funktionieren nicht -> DSK löschen
:oops::oops::oops:
Habe übersehen, dass > (Run) ohne Debugging ist und ich []> (Run mit Fenster) klicken muss. Alles ok!! |
AW: Breakpoints funktionieren nicht -> DSK löschen
Nur zur Beruhigung: Ging mir anfangs auch so. :-)
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Ich habe mit Breakpoints keine Probleme, zumindest solange ich nur die Debug Konfiguration nutze. Wenn ich da auf Releease Umstelle und einen Build machen, gehen die Breakpoints logischerweise nicht mehr, wenn ich dann wieder auf Debug umstelle. Das ist aber eigentlich logisch, weil ich die DCU's da liegen habe wo auch die pas Files sind. Damit ich die Breakpoints also wieder nutzen kann, muss ich nach dem Umschalten zum Debugmodus, das ganze Projekt neu Builden, damit die DCU's wieder Debugionfos enthalten. Ich unterscheide also nicht beim DCU Ausgabepfad (Unit Output Directory) und habe den leer, damit die dcu's da gemacht werden, wo auch die PAS liegen. So habe ich bisher keine unerklärlichen Probleme mit den Breakpoints gehabt.
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Zwischen Release und Debug geht es ja noch, aber zwischen unterschiedlichen Platformen und Compilern raucht es besonders schön. Darum gibt es ja den Weg über die verschiedenen Verzeichnisse, damit beim Umschalten sofort alles da ist. Das kann man sogar noch weiter treiben, also inkl. Compiler/Delphi-Version, wenn man mit mehreren Delphis arbeitet. Sowas ist vor allem wichtig, wenn man mehrere Versionen erzeugen will (Win32, Win64, Android, iOS, Delphi 7, XE, 10.3, 10.4, usw.) z.B.
Delphi-Quellcode:
vom Projekt aus, oder mit absolutem Pfad ala
.\_DCU_$(ProductVersion)_$(Platform)_$(Config)
Delphi-Quellcode:
C:\DCUs\$(ProductVersion)_$(Platform)_$(Config)
Aber du kannst dir das auch nur in ein Unterverzeichnis
Delphi-Quellcode:
reinmachen, dann brauchst nur dieses Verzeichnis zu löschen und alles ist sauber, anstatt zwischen den PAS überall die DCUs zu suchen.
.\_DCUs
Ein Problem gibt es, was nicht auftritt, wenn die DCUs neben den PAS liegen. Mehreren Projekte, welche die selben Ausgabeverzeichnisse nutzen (womöglich in einer Projektgruppe), aber wo in den Pojekten gleichnamige Units vorkommen. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Code:
.\dcu\$(SanitizedProjectName)\$(ProductVersion)\$(Platform)\$(Config)
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Bis jetzt ist es nur ein einziges Projekt, bei dem es das Problem gibt. Alle anderen funktionieren wie gewünscht. Einmal F9, Breakpoints funktionieren + dann nicht mehr. Es genügt "Alles schließen", neu öffnen und die Breakpoints gehen wieder. Was kann das sein?
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Ich sollte präziser sein. Also: Das Projekt ist Teil einer Projektgruppe. Öffne ich das Projekt und nicht die Projektgruppe, funktioniert alles wie gewünscht. :shock:
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Die Breakpoints werden in der DSK-Datei des Projekts oder der Projektgruppe gespeichert, je nachdem was man öffnet.
Das macht es ja auch so schwierig, die Breakpoints z.B. nach einer Formatierung der Sourcen wieder korrekt zu setzen. Neben der DSK-Datei des aktuellen Projekts oder der Projektgruppe, kann eine Unit ja auch in anderen Projekten verwendet werden, zu denen es Breakpoints in deren DSK-Dateien gibt. Von denen weiß man in der Regel aber nichts im aktuellen Projekt. Ich erwähne das u.A. auch auf einen Beitrag von @stahli zu seinem UnitOptimizer, in dem er sagt: Zitat:
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Hmm. Dann wäre eine mögliche Erklärung für mein Problem, dass die Breakpoints aus der DPOJ mit denen in der DSK kollidieren? Ich weiß nicht, ich lass mir einreden, wenn Breakpoints auf andere zeilen rutschen etc, aber das gar nichts mehr geht, wundert mich schon.
Aber dann lösche ich mal DPROJ und DSK + öffne das projekt nur mehr aus der Projektgruppe. mal sehen. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Eine solche Unterscheidung war mir nicht bekannt. Ich arbeite aktuell in einer Projektgruppe. Wird eine solche eigentlich nicht immer übergeordnet erzeugt - auch wenn nur ein Projekt bearbeitet wird? Ok, es kann sein, dass es Konstellationen gibt, bei denen ich die Breakpoints noch nicht wieder herstellen kann. Evtl. müsste ich nochmal nachbessern oder die Funktionalität auf den Projektgruppenfall beschränken. Augenscheinlich hat bei mir die Funktion aktuell immer funktioniert. Aber die ToolsAPI sind schon SEHR unübersichtlich. :-( Ich werde das heute Abend mal testen. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Du kannst das ja mal ausprobieren. Die Breakpoints und auch die geöffneten Dateien sind anders wenn du ein Projekt öffnest, als wenn du eine Projektgruppe öffnest die das Projekt enthält. Grund sind die unterschiedlichen DSK-Dateien für den jeweiligen Fall. Wird nur ein Projekt und keine Projektgruppe geöffnet, sollte IOTAModuleServices.MainProjectGroup übrigens ein nil zurück liefern. Das gerade aktuelle Projekt ist dann über IOTAModuleServices.GetActiveProject zu ermitteln. Wir hatten vor einiger Zeit eine Diskussion u.a. mit Marco Cantú darüber, wie man den Delphi-Formatter dazu bringen kann die Breakpoints zu berücksichtigen. Die festgestellten Probleme haben dann dazu geführt das Feature erst wieder auf Eis zu legen. Die unterschiedlichen DSK-Dateien waren aber nicht das einzige Problem. Was macht man z.B. wenn eine Zeile mit Breakpoint gesplittet oder zusammengeführt wird? |
AW: Breakpoints funktionieren nicht -> DSK löschen
Also ich ziehe über die IOTA-Funktionen die Breakpunkte heraus, die zur aktuellen pas-Datei gehören.
Im Quelltext setze ich Marker, die ggf. mit verschoben werden. An den Marker-Stellen stelle ich Breakpoints wieder her. Gleiches mit Bookmarks und der Cursorposition. Das ist ziemlich aufwendig (aufwendiger als es sich anhört ;-) ) aber funktioniert augenscheinlich gut. Kann natürlich sein, dass es Fälle gibt, die so nicht abgedeckt werden. :-/ Was garantiert ein Problem ist, sind Breakponts in Units, die von anderen Projekten gesetzt wurden. Die kennen dann natürlich keine Quelltextverschiebungen. Solche Sonderfälle (die sicherlich auch selten sind) wird man wohl so hinnehmen müssen... (Wobei ich mich frage, warum die IDE so kompliziert arbeitet. Sicherlich aus historischen Gründen.) kurzes Nebenthema: Bei Interfaces, die projektübergreifend genutzt werden, werde ich Änderungen nachverfolgbar machen. Wird also in Interface IPerson die Property Vorname in FirstName umbenannt, werden alle Klassen-Eigenschaften des aktuellen Projektes sofort umbenannt. Wird die Unit mit dem Interface auch in anderen Projekten anderer Projektgruppen genutzt, werden auch deren Klassen-Eigenschaften bei späterer Bearbeitung entsprechend angepasst. Dazu werden entsprechende Änderungsinfos hinterlegt. Bei projektgruppenübergreifenden Breakpoints wird das aber so kaum möglich sein. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Zitat:
Aber wo wir gerade über Code Formatting reden: Kann Deiner auch nur den aktuell markierten Bereich formatieren? Das ist definitiv ein Feature, das sehr nützlich wäre, wenn man z.B. das Format der Unit beibehalten will, aber den gerade bearbeiteten Bereich (z.B. eine neue Procedure) formatieren will (damit man das nicht manuell manchen muss). Puristen werden jetzt natürlich aufheulen und sich beschweren, dass dann ja die Unit unterschiedliche Format-Stile enthält, aber ich sehe das pragmatich: Besser unterschiedlich formatiert als einen Bug übersehen, weil man manuell formatiert. (Der Klassiker: if/then/while Blöcke falsch eingerückt und schon passt die Formatierung nicht mehr zur Programmlogik.) |
AW: Breakpoints funktionieren nicht -> DSK löschen
Teilformatierungen kann mein Tool (noch) nicht.
Ich wüsste aktuell auch nicht, wie das realisierbar wäre. Weitere Diskussionen dazu aber dann besser im zugehörigen Thread... |
AW: Breakpoints funktionieren nicht -> DSK löschen
Ich habe mir die Breakpoints und Bookmarks über Projektgruppen hinweg mal angesehen: https://youtu.be/v1yiqkkP3kw
Ich halte das Problem für systembedingt in Delphi und sehe da keine Lösung. Aus meiner Sicht ist ein paralleles Arbeiten und Debuggen von Units in mehreren Projekten sicherlich auch eine seltene Ausnahme. Wenn ich etwas falsch verstanden oder getestet habe, dann gebt bescheid... |
AW: Breakpoints funktionieren nicht -> DSK löschen
Stahli, ich möchte nicht unhöflich sein, aber das ist nicht thema dieses Threads. das passt doch besser in deinen eigenen, oder?
|
AW: Breakpoints funktionieren nicht -> DSK löschen
Ok, ich hatte das in Bezug auf die Speicherung (und das mögliche Beschädigen) von Breakpoints gesehen.
Aber kann auch gern verschoben werden. |
AW: Breakpoints funktionieren nicht -> DSK löschen
Ja, eh.
Aber mein Problem ist ja nicht, dass sie nicht mehr da sind, sondern, dass sie nicht funktionieren. Ich wechsle nicht zwischen DPROJ und PROJ. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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