Autor |
Beitrag |
Kralle
      
Beiträge: 65
Windows XP,Win7
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus
|
Verfasst: So 24.07.11 18:15
Moin,
gibt es eine Möglichkeit den Aufruf-Stack und den Inhalt bestimmter Variablen in eine Datei zu verfrachten?
Was ich mir vorstelle ist, das neben jeder Zeile des Stack der Inhalt einer bestimmten Varibalen angezeigt wird, so das man
schnell und einfach nachvollziehen kann, wann und wo sich der Inhalt einer Variablen ändert.
Klar, ich kann es mittels F7 Schritt für Schritt machen, aber wenn es der Coumputer für mich macht, wäre das natürlich praktischer und schneller.
Gruß Heiko
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.07.11 18:21
Die Möglichkeiten eine Änderung zu überwachen bietet Delphi 2006 noch nicht direkt.
Du kannst aber OutputDebugString benutzen um den Variableninhalt auszugeben. Zusätzlich kannst du den Stacktrace ausgeben lassen, indem du mit rechts auf einen Haltepunkt klickst (den kannst du ja in die Zeile mit OutputDebugString setzen). Dort kannst du das Häkchen bei Anhalten wegnehmen und bei Stacktrace setzen. Dann siehst du im Ereignislog diese Ausgaben.
Bei Delphi XE gibt es einen sogenannten Datenhaltepunkt. Da kannst du einfach anhalten lassen, wenn sich ein bestimmter Wert ändert.
Für diesen Beitrag haben gedankt: Kralle
|
|
Kralle 
      
Beiträge: 65
Windows XP,Win7
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus
|
Verfasst: So 24.07.11 19:10
Hallo Jaenicke,
jaenicke hat folgendes geschrieben : |
Du kannst aber OutputDebugString benutzen um den Variableninhalt auszugeben. |
Wie geht das?
jaenicke hat folgendes geschrieben : |
Zusätzlich kannst du den Stacktrace ausgeben lassen, indem du mit rechts auf einen Haltepunkt klickst (den kannst du ja in die Zeile mit OutputDebugString setzen). Dort kannst du das Häkchen bei Anhalten wegnehmen und bei Stacktrace setzen. |
Okay, den Teil habe ich nachvollziehen können.
jaenicke hat folgendes geschrieben : |
Dann siehst du im Ereignislog diese Ausgaben. |
Da bin ich mal gespannt.
jaenicke hat folgendes geschrieben : |
Bei Delphi XE gibt es einen sogenannten Datenhaltepunkt. Da kannst du einfach anhalten lassen, wenn sich ein bestimmter Wert ändert. |
Das scheint lt. OH auch bei 2006 zu gehen (wenn man weiß wie):
Zitat: | Bedingung
Legt einen Bedingungsausdruck fest, der bei jedem Durchlauf ausgewertet wird. Die Programmausführung wird angehalten, wenn der Ausdruck true ergibt. Geben Sie einen Bedingungsausdruck zum Beenden der Programmausführung ein.
Sie können jeden gültigen Sprachausdruck verwenden. Alle Symbole im Ausdruck müssen jedoch vom Haltepunkt aus erreichbar sein. Funktionen sind zulässig, wenn sie einen Booleschen Wert zurückegeben
|
Gruß Heiko
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.07.11 20:17
Für diesen Beitrag haben gedankt: Kralle
|
|
Kralle 
      
Beiträge: 65
Windows XP,Win7
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus
|
Verfasst: So 24.07.11 20:53
Hallo,
[quote=" jaenicke"(646404)]Einfach aufrufen?  Delphi-Quelltext 1: 2:
| OutputDebugString(PChar(MyStringVariable)); ... |
Danke.
jaenicke hat folgendes geschrieben : | Bei XE kannst du aber eine Speicherstelle unabhängig von einer Quelltextzeile überwachen und bei einer Änderung anhalten.  |
Das wäre genau ds was ich jetzt brauche, aber mehrere Hundert Euro habe ich nicht mal ebend rumliegen.
Wenn ich im Breakpoint den Halt ausschalte, dann bekomme ich keine Stack-Informationen angezeigt. siehe Bilder.
Gruß Heiko
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.07.11 21:49
Kralle hat folgendes geschrieben : | Wenn ich im Breakpoint den Halt ausschalte, dann bekomme ich keine Stack-Informationen angezeigt. siehe Bilder. |
Komisch, bei mir geht das problemlos in Delphi 2006, siehe Anhang.
Die Debugausgabe hast du auf deinen Screenshots allerdings gar nicht drauf.
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Kralle
|
|
Kralle 
      
Beiträge: 65
Windows XP,Win7
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus
|
Verfasst: Mo 25.07.11 07:18
Hallo Jaenicke,
jaenicke hat folgendes geschrieben : | Komisch, bei mir geht das problemlos in Delphi 2006, siehe Anhang.
Die Debugausgabe hast du auf deinen Screenshots allerdings gar nicht drauf. |
Jetzt läuft es auch bei mir.
Ich hatte mir den Aufrufstack anzeigen lassen und nicht die Ereignisanzeige.
Jetzt muß ich damit nur noch den Fehler im aktuellen Projekt finden.
Als erstes werde ich die " = True" bzw. "= false" Teile entfernen.
Gruß Heiko
|
|
|