![]() |
Programm durchsteppen - Anzeige, was gerade ausgeführt wird
Hallo,
ich habe ein kleines Problem, ich möchte durch mein Programm durchsteppen um den Inhalt von einzelnen Variablen mir ansehen zu können. Alles schön und gut, das funktioniert ja auch irgendwie. Mein Problem ist nur, dass er z.B. an Zeile 1 steht, aber im Grunde schon in der 3. Zeile den Quellcode ausführt, also alles irgendwie verschoben. Ich hab keine Ahnung woher das kommt und das nervt ein wenig, ich weiss nie wirklich in welcher Zeile er gerade ist zumindest nicht in der, die gerade markiert ist. Kriegt man das irgendwie wieder hin? |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Kommt bei mir gelegentlich auch vor. Meist hilft es dann, das Projekt neu zu erzeugen (nicht nur compilieren sondern unter Menu Projekt "<Projektname> erzeugen" auswählen).
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Ich hatte so was mal, als ich ein Programm per IDE gestartet hatte und dann Änderungen am Code vorgenommen habe. Dadurch hat sich der Quelltext verschoben und die Zeilennummern, die der Debugger zurücklieferte, stimmten nicht mehr. Neu kompilieren hat das Problem gelöst.
Ich gehe aber mal davon aus, das das bei dir nicht das Problem ist. Ist nur so als Anmerkung gedacht. :) |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
kompiliert hab ich ja schon mehrmals und Projekt neu erzeugen hat auch nichts gebracht
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
..moin, versuch mal die *.dcu zu löschen und danach "neu erzeugen" durchzuführen
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
auch kein Erfolg
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Hallo Susanne,
die eingebundene DCU-Datei und die vom Debugger verwendete PAS-Datei gehören nicht zusammen. Du wirst anhand der Verzeichnisse in deinen Projekteinstellungen prüfen müssen, von wo die falsche DCU-Datei geladen wird. Grüße vom marabu |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
wo muss ich denn da genau gucken?
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
...du hast zB die Datei Bla.pas...
...dann lass doch Windows auf der Platte nach Bla.dcu suchen ;) ..bestimmt wirst du es dann meherere male finden |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Deine Projektoptionen siehst du, wenn du Strg-Umsch-F11 drückst. Dort wähle die Seite "Verzeichnisse/Bedingungen" aus. Unter "Suchpfad" stehen die Ordner, in denen der Compiler die DCU-Dateien sucht. "Pfad für Debugger" verweist auf die Quelldateien dazu.
marabu |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
in "Suchpfad" und "Pfad für Debugger" stand nichts drin, ich hab jetzt einfach mal die Pfade angegeben, wo er die nun findet, ändert aber immernoh nichts
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Dann ist es vielleicht das Beste, wenn du auf den brute force Ansatz von Tyrael zurückgreifst. Durchsuche mal mit dem Explorer dein Delphi Installationsverzeichnis nach der Datei. Kann ja sein, dass dir dann etwas auffällt.
marabu |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Ursache:
im Sourcecode ist statt <CR><LF> nur ein <LF> oder ein <CR> enthalten. Compiler und Editor der IDE haben offensichtlich unterschiedliche Ansichten, was ein Zeilenumbruch ist. Dieser Bug existiert in Delphi 2 bis min. Delphi 7. Anlass: Du hast per Copy & Paste irgendwas aus einer Hilfedatei oder einem Browserfenster in den Sourcecode kopiert. Abhilfe: "Kaputte" PAS Datei mit dem steinalten MS DOS Editor öffnen, einen Kommentar einfügen, ans Ende springen und speichern. |
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
über die MS-DOS Eingabeaufforderung habe ich edit als Editor benutzt, ist der Alt genug? ich hab einen Kommentar eingefügt und dann gespeichert, aber gebracht hat das gar nichts.
|
Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
Zitat:
Zitat:
Wenn die Zeile mit dem Cursor überstrichen wird, ist das für den Editor der Anreiz, die Zeile neu zu "formatieren". Hast du danach auch das Projekt neu erzeugt ? Es sollte reichen, nur die Problemunit neu zu kompilieren, aber sicher ist sicher. Du kannst auch folgendes Konsolenprogramm benützen:
Delphi-Quellcode:
Und dann an der Kommandozeile:
program PASclean;
{$APPTYPE CONSOLE} uses sysutils; var s : string; p : Integer; begin // Hier Anwender-Code while not Eof(Input) do begin Readln(s); p := Pos(#10, s); while p > 0 do begin Write(Copy(s,1, p-1), #13#10); Delete(s, 1, p); p := Pos(#10, s); end; p := Pos(#13, s); while p > 0 do begin Write(Copy(s,1, p-1), #13#10); Delete(s, 1, p); p := Pos(#13, s); end; Write(s, #13#10); end; end. PASclean <unit1.pas >unit1_NEU.pas Wenn die erzeugte Datei mehr Bytes hat wie die Orginale, weisst du dass kaputte Linefeeds im Spiel waren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 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