Autor Beitrag
goldensurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Do 23.08.07 13:49 
Hallo,

ich habe ein Delphi 7 (ich weiß, ist nicht die neueste Version, aber die neueste die ich habe und für meine Zwecke taugt es) aufgesetzt, um an einem älteren Projekt (entstanden mit Delphi 4) etwas zu ändern.
Unter Delphi 4 habe ich außerdem eine ältere Indy-Version eingesetzt - jetzt Indy 10; hier waren auch noch einige Quelltextänderungen notwendig, aber nun läuft das Programm einwandfrei.

Problem: ich kann nicht debuggen!

Setze ich irgendwo im Quelltext einen Haltepunkt (ohne Bedingung), so wird die entsprechende Zeile rot hinterlegt und links ist ein roter Punkt, wie gewohnt.
Starte ich aber nun das Programm (F9), so färbt sich die entsprechende Zeile im Hintergrund grün; der rote Punkt links wird mit einem gelben Kreuz markiert.
Sowas kannte ich früher nur von Breakpoints, die an einer Stelle gesetzt wurden, die der Compiler wegoptimiert hat. Die Stelle des Breakpoints wird aber in jedem Fall aufgerufen (Ereignisbehandlung ButtonClick).
Habe ich da irgendeine Einstellung übersehen? Unter Projekt / Optionen / Compiler ist "Debug-Informationen" und "Lokale Symbole" markiert.
Was mir auch noch auffällt: beim Öffnen des Projekts kommt immer eine Dialogbox "Fehler beim Lesen der Symboldatei". Kann das damit zusammen hängen?

Danke,
Ralf
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 23.08.07 13:53 
der Haltepunkt muss in einer gültigen Quellcodezeile sein, also nur in einer solchen, wo nach dem Compilieren ein blaue Punkt am Anfang der Zeile ist.

Wenn du also den Haltepunkt zB. auf eine Zeile wie procedure test(value: integer); setzt, dann funktioniert das nicht, setzte den Haltepunkt mal auf begin
goldensurfer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Do 23.08.07 14:27 
Ja, das ist klar. Die Zeile mit dem Haltepunkt wird auch ausgeführt; als Test habe ich innerhalb einer Prozedur einfach ein showmessage('hallo'); eingefügt und genau auf diese Zeile den Haltepunkt gesetzt. Die Messagebox erscheint, nur der Haltepunkt wird nicht ausgelöst, und die Quelltextzeile wird grün beim Starten.
Nach Deinem Posting ist mir aufgefallen, dass nach dem Compilieren gar keine blauen Punkte angezeigt werden - lege ich ein neues Projekt an, dann schon - dann klappen auch die Haltepunkte.
Kann es sein, dass man Delphi4-Formulare irgendwie an Delphi7 anpassen muss?
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 23.08.07 14:37 
delphi4 und delphi7 formulare haben zwar einen ganz unterschiedlichen aufbau, deshalb könntest du die in D7 geöffneten D4-Forms mal speichern unter... aber das dürfte nichts damit zu tun haben.

Und eine ganz normale Unit sagst du? Kein Thread oder DLL - bei denen weiß ich nicht ob man debuggen kann.

Oder vielleicht benutzt Delphi gar nicht deine Unit .pas, sondern gleich die dcu (ich glaub beim VCL-Quelltext kann man auch nicht debuggen).
goldensurfer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Do 23.08.07 14:40 
noch ein Nachtrag... habe per Google einen Hinweis gefunden, da hieß es: DOS-Fenster öffnen, edit starten, Quelldatei laden, Quelldatei gleich wieder speichern.
Das hat funktioniert - nun erscheinen auch nach dem Compilieren die blauen Punkte und die Haltepunkte gehen auch. Nur woher kommt das? Hat sich hier von D4 zu D7 vielleicht in den Quelltexten ein CR zu CR+LF geändert oder andersrum?
Ein Workaround ist es jedenfalls schon mal. Vielen Dank für den Hinweis mit den blauen Punkten nach dem compilieren - das hätte ich natürlich glatt übersehen!!
goldensurfer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Do 23.08.07 14:58 
Okay, ich glaube ich habe es herausgefunden: ich habe im Sourceverzeichnis meines Projekts "XXX" die Dateien XXX.dsk und XXX.dsm gelöscht. Scheinbar hat sich für das Desktop-Speicherformat zwischen den Versionen was geändert.
Nach dem erneuten Öffnen des Projekts musste ich dann zwar alle Quelltexte einzeln per Ansicht / Projektverwaltung neu öffnen, aber nun lassen sich einerseits die Haltepunkte funktionsfähig setzen, und andererseits kommt die anfangs erwähnte Fehlermeldung ""Fehler beim Lesen der Symboldatei" nun auch nicht mehr.

Vielen Dank für Eure Denkanstöße!

Ralf