Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quelltextbegrenzung (Quellcode zu lang??) (https://www.delphipraxis.net/150050-quelltextbegrenzung-quellcode-zu-lang.html)

incognito 6. Apr 2010 12:17


Quelltextbegrenzung (Quellcode zu lang??)
 
Hallo,

ich programmiere mit Delphi 7 und ich habe einen Quelltext, der knapp 30.000(!!) Zeilen lang ist. Nun ist mir aufgefallen, dass sobald ich noch etwas anfüge, ich nicht mehr überall meine Haltepunkte setzen kann und der Debugger nicht mehr richtig funktioniert (springt die gesetzten Haltepunkte nicht mehr an). Sobald ich den zuletzt angefügten Quelltext wieder entferne, kann ich wieder überall Haltepunkte setzen und diese werden auch wieder korrekt angesprungen. Wenn ich diesen Bug(?) nun vernachlässige und lustig weitercode geht es irgendwann soweit, dass das Prog zur Laufzeit an den unsinnigsten Stellen mit Exceptions aussteigt und wenn ich die einzelnen Prozeduren mit F7 durchgehen will, springt der Debugger wahllos in den Zeilen umher.

Kann es daran liegen, dass der Quelltext einfach viel zu lang ist? Oder stimmt was mit dem Delphi nicht und ich muss neu installieren?

Vielen Dank für eure Hilfe!

himitsu 6. Apr 2010 12:22

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Ich kann mich nicht erinnern, daß nur Aufgrund eines langen Quelltextes mein D7 durchdrehte.

guinnes 6. Apr 2010 12:24

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Ich benutze in mehreren Projekten eine Unit, die alleine >> 47.000 Zeilen hat. Ich habe noch keine Probleme mit dem Debugger gehabt.

Phoenix 6. Apr 2010 12:26

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Also ich habe schon in einem Projekt mit über 600.000 Zeilen gearbeitet. Das ist Prinzipiell kein Problem.
Lösche mal alle alten dcu's und erzeuge das Projekt komplett neu. Ab und zu vergisst Delphi mal, einige DCU's neu zu erstellen, obwohl es in den Quellcode-Files Änderungen gab. Und dann linkt der Compiler halt Zeug zusammen was nicht mit dem Code übereinstimmt und das mag die IDE dann nicht so wirklich.

incognito 6. Apr 2010 13:37

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Hmm, na für mich sind 30.000 schon ziemlich viel :-D

Also ich habe den Tipp von Phoenix befolgt und die alten dcus gelöscht. Leider kein Erfolg. Ich kann immer erst ab einer bestimmten Stelle im Quellcode wieder Haltepunkte setzen (erkenne ich ja an den blauen Punkten am Rand). Die Stelle ist immer wieder die gleiche aber der Quellcode dort funktioniert einwandfrei. Und wie gesagt, entferne ich die letzte hinzugekommene Prozedur (die funktioniert), kann ich wieder von Anfang Haltepunkte setzen. Merkwürdig :gruebel:

Trotzdem Danke!

Gruß, Jana

Phoenix 6. Apr 2010 13:43

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Sowas ähnliches hatte ich auch mal. Allerdings war da die Codestelle die das Verhalten ausgelöst hat fehlerhaft. Ich habe allerdings keine Ahnung mehr was genau damit nicht stimmte. Ist schon ein paar Jährchen her.

Probiere mal den Methodenrumpf mit einem anderem Namen und ohne Inhalt einzufügen. Dann müsste es immer noch gehen. Dann füge die neue Logik Stück für Stück, Zeile für Zeile hinzu und schaue, an welcher Stelle in dem Code der Linker verrückt spielt.

p80286 6. Apr 2010 13:46

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Hallo Jana,

es könnte auch am Kommentar liegen!
Ich habe eine Untit, in die ich ein paar Zeilen aus dem SDK als Kommentar kopiert habe. Seitdem "spinnt" der Debugger.
Lösche ich den Kommentar ist wieder alles im Lot.
Ich vermute, daß es sich um irgendwelche Sonderzeichen handelt, habe mir aber nie die Mühe gemacht sie zu identifizieren.

Gruß
K-H

ChrisE 6. Apr 2010 13:50

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Hallo incognito,

gibt es diese besagte Unit in irgendeinem deiner eingestellten Suchpfade etc. nochmal in älterer Version. Das hatte ich mal. Da wird dann die "falsche" unit gezogen für Compilieren oder Debuganzeige. Ich kann mich nicht mehr so genau erinnern wie das war unter D7.

Meine Erfahrung bei dieser Art Fehler war immer:
- IDE schließen
- DCUs löschen (wie Phoenix schon geschrieben hat)
- andere Dateien löschen (alles außer rc,inc,res,pas,dfm,dpr ggf. andere wichtige Dateien die nicht wieder von der IDE erstellt werden)
- Projekt nicht in einer Projektgruppe öffnen
- IDE-Neustart

Danach komplett neue erzeugen.
Klappt das alles nicht die Sache mit den Suchpfaden etc. prüfen (In Projektoptionen und in allg. Optionen).

Hoffe, das bringt dich weiter.

Greez, Chris

guinnes 6. Apr 2010 14:00

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
Zitat:

Zitat von p80286
Ich habe eine Untit, in die ich ein paar Zeilen aus dem SDK als Kommentar kopiert habe. Seitdem "spinnt" der Debugger......Ich vermute, daß es sich um irgendwelche Sonderzeichen handelt, habe mir aber nie die Mühe gemacht sie zu identifizieren.

Die "Sonderzeichen " sind die Zeilenendekennungen. Der Editor der IDE kommt mit $0D alleine gut klar, der Debugger nicht. Tipp :
Lade den Quelltext in eine Stringlist und speicher die Stringlist wieder ab -> Schon wird aus $0D ein $0D0A und alles ist gut.

incognito 6. Apr 2010 14:06

Re: Quelltextbegrenzung (Quellcode zu lang??)
 
@chrisE

Hab deine Tipps jetzt mal befolgt.
Alle nicht gewünschten Dateien gelöscht. Mein Projekt gehört zu keiner Projektgruppe. In den Projektoptionen ist bei Suchpfad nichts eingetragen.
In den Umgebungsoptionen gibt es nur einen Suchpfad für die Delphibibliotheken (oder?). Dort sind natürlich die Delphi-Pfade angegeben aber nichts, das im Bezug zu meinem Programm steht. Hat leider nicht funktioniert. Wäre ja auch zu schön gewesen :(

@ phoenix, p80286:

Sowas hatte ich hier auch schonmal gelesen. Irgendwie scheint da was mit Copy&Paste nicht ganz zu klappen. Bei einem anderen Beitrag hier im Forum lag es an einem Zeilenumbruch (Quelltext aus dem Internet kopiert) den der Compiler nicht richtig interpretiert hat. An der letzten Prozedur die ich eingefügt kann es nicht liegen, die hab ich per hand geschrieben. Da wird mir dann wahrscheinlich wirklich nichts anderes übrib bleiben, als die einzelnen Prozeduren Schritt für Schritt durchzugehen :(

Habe einiges in meinem Prog mit Copy&Paste gemacht.

Trotzdem vielen Dank für eure Hinweise!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:53 Uhr.
Seite 1 von 2  1 2      

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