Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi hält an nicht vorhandenen Breakpoints (https://www.delphipraxis.net/104035-delphi-haelt-nicht-vorhandenen-breakpoints.html)

HERMES 26. Nov 2007 13:18


Delphi hält an nicht vorhandenen Breakpoints
 
Hallo zusammen,

ich habe momentan ein größeres Projekt, das ich noch mit Delphi 7 bearbeiten muss. Leider passiert es immer wieder, dass der Debugger an stellen anhält, an denen es keinen Breakpoint gibt. Es tritt aber auch kein Fehler auf.

Man kann das Problem umgehen indem man soviele leerzeilen einfügt, dass keine sinnvoller Programmcode in der Zeile mit dem "Haltepunkt" steht. Oder man löscht alle Dateien zu diesem Projekt ( nicht die Units ), erstellt ein neues Projekt und fügt wieder die Units hinzu.

Allerdings sind beides keine wirklichen Lösungen, und es kostet viel Zeit sich immer damit rumzuärgern. Kennt jemand eine Lösung? Oder weis jemand wo delphi 7 seine Breakpoints abspeichert?


mfg

Phoenix 26. Nov 2007 13:25

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Lösche mal alle DCU's zu dem Projekt und erstelle es komplett neu.
Manchmal baut der Linker mist mit alten DCU's, die eigentlich neu erstellt hätten werden sollen, es aber nicht wurden.

HERMES 26. Nov 2007 13:34

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Hab ich schon öfters versucht, hat aber nicht geholfen.

ken_jones 26. Nov 2007 13:52

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Öffne doch mal die *.pas Dateien mit einem "normalen" Texteditor (PSPad, etc.) und prüfe ob wirklich alle Zeilen mit einem CR/LF abgeschlossen wurden.
So ein komisches Verhalten hatte ich seinerzeit mit einem PAS File, welches im Code ein Paar CR (ohne LF) Zeilen drin hatte. Die Delphi IDE hat diese Zeilen nie angezeigt.

hoika 26. Nov 2007 13:54

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Hallo,

öffne die betreffende Unit mit Notepad (nicht WordPad).

Suche nach verdächtigen Stellen (meistens schwarze Rechtecke),
die müssen raus. Abspeichern, das wars.

Das sind "falsche" Zeilenumbrüche (#13 statt #13#10).

Die IDE sieht darüber hinweg, der Debugger nicht.

Woher die kommen ?
1. Code aus dem Netz gesaugt.
2. Ein paar VCS erzeuge sowas.
3. tja ...


Heiko

shmia 26. Nov 2007 13:57

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Dein Sourcecode enthält Zeichen (z.B. ASCII 129 = "unechtes" Leerzeichen ), die den Debugger durcheinander bringen.
Die passiert meistens dann, wenn man Code aus einem Browserfenster und einer Hilfedatei kopiert.
Auch überlange Zeilen, können zum Problem werden

Abhilfe:
den uralten Editor Edit.exe in einer DOS-BOX starten und die Unit öffnen.
Code:
C:\> edit C:\test\testunit.pas
Kleine Änderung vornehmen, ans Dateiende springen und speichern.

HERMES 26. Nov 2007 14:46

Re: Delphi hält an nicht vorhandenen Breakpoints
 
So wie ich das sehe, sind da keine Zeichen die da nicht hingehören. Und selbst wenn, das Verhalten spricht eher gegen so etwas. Um es zu verdeutlichen, nehmen wir mal an ich habe folgenden Code:

200: CallTest1(aaa);
201: CallTest2;
202: result := GetTest3(aaa);

und Delphi unterbricht immer in Zeile 201.

Wenn ich jetzt hingehe und eine neue Zeile vor 200 ( egal wieviel davor ) einfüge, dann hält Delphi in der früheren Zeile 200 an.
Wenn ich aber Zeile 201 zu einer leeren Zeile mache, dann hält Delphi nicht mehr, klar, ist ja auch kein Code in Zeile 201.

Also es sieht so aus, als noch irgendwo ein Breakpoint gespeicht wäre, der aber von nder IDE nicht angezeigt wird.

mfg

HERMES 26. Nov 2007 15:07

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Hallo nochmals,

ich habe das Problem gefunden! Delphi speichert seine Breakpoints in der ProjektGruppe.dsk. Das ist eigentlich eine ini Datei, dort gibt es einen Abschnitt "Breakpoints", indem zu jeder Unit der Projektgruppe die Breakpoints gespeichert werden. Ich vermute mal, dass es CVS liegt, bzw. an den unterschiedlichen Arbeitsverzeichnissen, dass Delphi da irgendwie durcheinander kommt und bestimmte Breakpoints nicht mehr anzeigt, der Debugger aber dennoch dort anhält.

danke.

shmia 26. Nov 2007 15:08

Re: Delphi hält an nicht vorhandenen Breakpoints
 
Zitat:

Zitat von HERMES
So wie ich das sehe, sind da keine Zeichen die da nicht hingehören. Und selbst wenn, das Verhalten spricht eher gegen so etwas.

Bist du dir wirklich sicher, dass die Breakpoints nicht verschoben sind?!
Der bekannte Effekt ist so, dass irgenwo in der Mitte des Sourcecode die Breakpoints nicht mehr zum Source passen.
Normalerweise sollte auf jedem "Begin" und jedem "end" einer Methode ein Breakpoint möglich sein.
Lösch doch mal ALLE Haltepunkte (Ctrl+Alt+B)

Es gibt auch noch den Effekt, dass die IDE auch ohne dass man ein Breakpoint gesetzt hat im CPU-Fenster stoppt.
Ursache ist dann, dass in manchen System-DLLs Aufrufe an DebugBreak() vergessen wurden.
Dann einfach ignorieren und F9 drücken.
Sollte dies massiver auftreten, gibt es auch die Möglichkeit die Funktion DebugBreak() zur Laufzeit zu patchen.

torud 10. Sep 2011 10:51

AW: Re: Delphi hält an nicht vorhandenen Breakpoints
 
Zitat:

Zitat von HERMES (Beitrag 707383)
Hallo nochmals,
ich habe das Problem gefunden! Delphi speichert seine Breakpoints in der ProjektGruppe.dsk. Das ist eigentlich eine ini Datei, dort gibt es einen Abschnitt "Breakpoints", indem zu jeder Unit der Projektgruppe die Breakpoints gespeichert werden. Ich vermute mal, dass es CVS liegt, bzw. an den unterschiedlichen Arbeitsverzeichnissen, dass Delphi da irgendwie durcheinander kommt und bestimmte Breakpoints nicht mehr anzeigt, der Debugger aber dennoch dort anhält.
danke.

Hallo,

ich weiss, der Thread ist schon Uralt, aber ich habe seit gestern abend genau das gleiche Problem und finde die Datei ProjektGruppe.dsk nicht. Ich nutze Delphi 7. Ich habe hier im Forum schon gesucht und nur Messages gefunden, die sich darauf beziehen, dass was mit der ntdll nicht passt. Diese Meldung habe ich aber in dem CPU-Fenster nicht. Ich weiss nur, dass ich VOR dem Problem einen Breakpoint gesetzt habe und seitdem das Problem besteht, obwohl ich den Breakpunkt wieder entfernt habe, bzw. den Code, auf den sich der Breakpoint bezog verschoben habe. Vielleicht ist das auch die Ursache des Problems!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf