Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm durchsteppen - Anzeige, was gerade ausgeführt wird (https://www.delphipraxis.net/57888-programm-durchsteppen-anzeige-gerade-ausgefuehrt-wird.html)

Susanne 28. Nov 2005 12:57


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?

dfried 28. Nov 2005 13:01

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).

chaosben 28. Nov 2005 13:01

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. :)

Susanne 28. Nov 2005 13:06

Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
 
kompiliert hab ich ja schon mehrmals und Projekt neu erzeugen hat auch nichts gebracht

Tyrael Y. 28. Nov 2005 13:12

Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
 
..moin, versuch mal die *.dcu zu löschen und danach "neu erzeugen" durchzuführen

Susanne 28. Nov 2005 13:15

Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
 
auch kein Erfolg

marabu 28. Nov 2005 13:17

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

Susanne 28. Nov 2005 13:23

Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
 
wo muss ich denn da genau gucken?

Tyrael Y. 28. Nov 2005 13:41

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

marabu 28. Nov 2005 13:43

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

Susanne 28. Nov 2005 14:00

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

marabu 28. Nov 2005 14:09

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

shmia 28. Nov 2005 14:26

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.

Susanne 28. Nov 2005 15:26

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.

shmia 28. Nov 2005 16:21

Re: Programm durchsteppen - Anzeige, was gerade ausgeführt w
 
Zitat:

Zitat von Susanne
über die MS-DOS Eingabeaufforderung habe ich edit als Editor benutzt, ist der Alt genug?

Ja, der ist ok. Copyright ist von 1995; also schon ein Oldie.
Zitat:

Zitat von Susanne
ich hab einen Kommentar eingefügt und dann gespeichert, aber gebracht hat das gar nichts.

Hast du auch den Cursor bis ans Dateiende bewegt ?
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:
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.
Und dann an der Kommandozeile:
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