Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   [Erledigt] S: Erweiterung Verlaufsanzeige bei Debug (https://www.delphipraxis.net/178500-%5Berledigt%5D-s-erweiterung-verlaufsanzeige-bei-debug.html)

Kralle 11. Jan 2014 12:28


[Erledigt] S: Erweiterung Verlaufsanzeige bei Debug
 
Moin,

was ich mit obigem meine:
Ich suche eine Erweiterung für die IDE, das mir in einem extra Fenster aufzeigt, in welcher Reihenfolge welche Procedure/Funktion beim Start mit/ohne Debugger durchlaufen wird.

Ich weiß ich könnte mich mittels F7/F8 durch den Code hangeln, aber geht das nicht einfacher?

Vielleicht gibt es so eine Funktion ja schon in XE5 und ich kenne sie nur nicht.

MfG
Heiko

P.S. Wo sind eigentlich die "grünen Breakpoints" hin.

Aviator 11. Jan 2014 12:36

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Zitat:

Zitat von Kralle (Beitrag 1243141)
Moin,

was ich mit obigem meine:
Ich suche eine Erweiterung für die IDE, das mir in einem extra Fenster aufzeigt, in welcher Reihenfolge welche Procedure/Funktion beim Start mit/ohne Debugger durchlaufen wird.

Ich weiß ich könnte mich mittels F7/F8 durch den Code hangeln, aber geht das nicht einfacher?

So eine Funktion kenne ich in Delphi auch nicht direkt. Nur für was braucht man so etwas? Wenn mann wissen möchte, wo er hinläuft, dann debuggt man das durch. Zur Laufzeit kann dein Rechner ja nicht wissen, wo er hinläuft. Was z. B. wenn if Statements vorkommen und zu dem Zeitpunkt der Abfrage noch gar nicht klar ist, wie das Ergebnis ist?

Zitat:

Zitat von Kralle (Beitrag 1243141)
P.S. Wo sind eigentlich die "grünen Breakpoints" hin.

Die grünen Breakpoints kommen nur, wenn du an einer Stelle einen setzt (bspw. in einer neuen Procedure), die in deinem gesamten Programm nicht aufgerufen wird. In XE4 werden diese noch grün angezeigt, ob das in XE5 anders ist, weiß ich nicht. Aber du kannst dir die Farben auch einstellen, sofern diese nur anders aussehen als vorher.

Sir Rufo 11. Jan 2014 12:43

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Meinst du den Stacktrace? Der wird beim Debuggen angezeigt

Wohin die nächsten Schritte führen kann nicht mit Sicherheit gesagt werden, da es ja bedingte Sprünge gibt und dafür müsste der Debugger in die Zukunft schauen können

Kralle 11. Jan 2014 12:52

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Moin,

Zitat:

Zitat von Sir Rufo (Beitrag 1243144)
Meinst du den Stacktrace? Der wird beim Debuggen angezeigt

Ich meine so etwas:
ButtonKlick
ConvertZahlen
Ersetze_Zeilen_oben
Ersetze_Zeilen_unten

Einfach eine Liste, in der jede Procedure/Funktion aufgelistet wird, in der Reihenfolge wie sie aufgerufen wird.
Wobei nur Proceduren des aktuellen Quellcodes und nicht Systemfunktionen usw. gemeint sind.

Gruß HEiko

Sir Rufo 11. Jan 2014 12:54

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Der Stacktrace zeigt dir die aktuelle Aufrufreihenfolge an, ausgehend von dem Punkt, an dem du dich befindest.

Andersherum geht das nicht

Kralle 11. Jan 2014 12:58

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Moin,

Zitat:

Zitat von Aviator (Beitrag 1243142)
Die grünen Breakpoints kommen nur, wenn du an einer Stelle einen setzt (bspw. in einer neuen Procedure), die in deinem gesamten Programm nicht aufgerufen wird. In XE4 werden diese noch grün angezeigt, ob das in XE5 anders ist, weiß ich nicht. Aber du kannst dir die Farben auch einstellen, sofern diese nur anders aussehen als vorher.

Ich meine eigentlich die, die nach einem F7/F8 das Programm bis zum nächsten Breakpoint weiterlaufen lassen.
Ein F9 meine ich nicht.

Gruß Heiko

Aphton 11. Jan 2014 13:00

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Es ist mit ein bisschen Aufwand natürlich möglich, relevante Funktionen mit "Marker" zu versehen, damit man später auch so ne Liste bekommt.
Stacktrace ist eigentlich genau dafür gedacht, aber das Ding ist wirklich ganz genau. Nach einem Buttonclick muss nicht unbedingt ConverZahlen folgen - dazwischen werden evt. Windows-Messages verarbeitet weswegen zu WndProc gesprungen werden muss oder was weiß ich..

Folgende Methode meinte ich vorhin:
Delphi-Quellcode:
{$DEFINE DEBUG}

procedure irgendeine_procedure();
begin
  {$IFDEF DEBUG}
  OutputDebugString(<String mit Informationen über momentante Position (Procedurename, Parameter..)>);
  {$ENDIF}
  blabla
end;

Furtbichler 11. Jan 2014 15:39

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Zitat:

Zitat von Sir Rufo (Beitrag 1243147)
Andersherum geht das nicht

"Doch" (irgendwie jedenfalls ungefähr).

Die Codeanalyse macht das, sie erstellt Codepfade, um zu prüfen, ob und wann Variablen verwendet werden, um die Verwendung von Registern zu optimieren. Dies könnte man anzeigen.

Andere IDE zeigen Abhängigkeiten, d.h. "Methode 'X' ruft Methode 'Y' auf, die dann 'Z1' und auch 'Z2' aufruft. Man kann so den ganzen Abhängigkeitsbaum erstellen. Der wird zwar groß, aber nicht unendlich groß, weil ich Rekursionen sicher erkenne.

Wie es aber *konkret* an einem bestimmten Breakpoint weitergeht, das weiß der Debugger von Delphi nicht. Die VS-IDE in der Extrem-Wer-hat-schon-soviel-Kohle-Version kann das aber (indirekt), da ich zu einem späteren Zeitpunkt einen Breakpoint 'B' setzen und dann in der Zeit 'zurückspulen' kann um mich auf den vorherigen Breakpoint 'A' zu setzen. Dann sehe ich in der Tat, wie man von 'A' nach 'B' kommt.

Wer das allerdings braucht, hat schlechten Code produziert, imho.

Kralle 11. Jan 2014 16:35

AW: S: Erweiterung Verlaufsanzeige bei Debug
 
Danke, für Eure Hilfe.
Habe den Fehler inzwischen mit F7/F8 gefunden.

Gruß HEiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.

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