Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Out-Parameter im Debugger (https://www.delphipraxis.net/191611-out-parameter-im-debugger.html)

Der schöne Günther 1. Feb 2017 17:15


Out-Parameter im Debugger
 
Ich mache heute auf den Tag genau seit vier Jahren Delphi :party:
(fällt mir grade so auf)

Die Frage ist daher besonders peinlich.

Angenommen folgende Methode:
Delphi-Quellcode:
procedure TSomeClass.someMethod(const input: Integer; out output: Integer);
Wie kann ich im Debugger den Wert von "output" sehen wenn "input" z.B. 42 ist?

Wäre es eine normale Funktion mit Rückgabewert ist das klar, das kann der Debugger. Aber so? :oops:

himitsu 1. Feb 2017 17:19

AW: Out-Parameter im Debguger
 
Grundsätzlich erstmal garnicht.
Du kannst dir einen Wrapper basteln, also eine Funktion, welche den Wert als "Result" rausrückt und intern SomeMethod aufruft.

Also bezogen auf die "Überwachten Ausdrücke" oder das "Auswerten/Ändern", auf was du dich wohl beziehst.


Alternativ wendest du dich an Embarcadero, erstellst im Quality-Center ein Eintrag und bittest sie, dass sie in diesen Features eine "typlose" Variable anbieten, die man da im Statement verwenden kann, so ala
Delphi-Quellcode:
SomeClass.SomeMethod(42, DebugResult)
.

Es wäre natürlich zu geil, wenn das dann gleich richtig scriptfähig würde... :shock:
Delphi-Quellcode:
DebugResult := SomeClass.sSomeMethod(42);

oder
Delphi-Quellcode:
SomeClass.MachErstmalWas;
SomeClass.SomeMethod(42, DebugResult);

freimatz 1. Feb 2017 17:40

AW: Out-Parameter im Debguger
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1360603)
Angenommen folgende Methode:
Delphi-Quellcode:
procedure TSomeClass.someMethod(const input: Integer; out output: Integer);
Wie kann ich im Debugger den Wert von "output" sehen wenn "input" z.B. 42 ist?

Indem man die Methode erst mal nach Clean Code Regeln refaktorisiert, danach ist das nicht mehr nötig. :wink:

Der schöne Günther 1. Feb 2017 17:42

AW: Out-Parameter im Debguger
 
Blöd wenn es nicht meine eigene Methode ist (z.B. aus einer externen Assembly) :-þ

Aviator 1. Feb 2017 21:05

AW: Out-Parameter im Debguger
 
Hi Günther,

also irgendwie verstehe ich deine Frage nicht oder bei mir funktioniert etwas, das bei euch allen nicht funktioniert.

Ich habe heute genau eine solche Funktion programmiert. Einen
Delphi-Quellcode:
const
Parameter und einen
Delphi-Quellcode:
out
Parameter. Sobald ich den Debugger starte und die Funktion ausführe, wird mir der Wert angezeigt. Weil es ist ja nix anderes, als das einer Variablen ein Wert zugewiesen wird.

Beim Schreiben bin ich gerade noch auf einen anderen Fall gekommen wie du deine Frage evtl. meinen könntest.

Geht es dir evtl. darum, dass du wie bei der Length() Funktion eben diese markieren möchtest und er zeigt dir direkt die Länge bspw. einen Arrays an?

PS: In deiner Überschrift ist ein Schreibfehler. :wink:

jaenicke 1. Feb 2017 21:53

AW: Out-Parameter im Debguger
 
Er meinte denke ich die Auswertung mit Strg + F7 oder die überwachten Ausdrücke. ;-)

Aviator 1. Feb 2017 23:46

AW: Out-Parameter im Debguger
 
Zitat:

Zitat von jaenicke (Beitrag 1360630)
Er meinte denke ich die Auswertung mit Strg + F7 oder die überwachten Ausdrücke. ;-)

Also zumindest in den überwachten Ausdrücken wird mir der Wert der Variablen angezeigt. :roll:

jaenicke 2. Feb 2017 05:05

AW: Out-Parameter im Debguger
 
Was gibst du denn für den Aufruf als Parammte für eine Variable an? Eine globale Dummy-Variable, die man dann unterhalb bzw. nach dem Funktionsaufruf auswertet, könnte gehen.

Aviator 2. Feb 2017 08:20

AW: Out-Parameter im Debugger
 
Liste der Anhänge anzeigen (Anzahl: 3)
Also bei mir ist es eine lokale Variable die in der Funktion als Integer deklariert ist. Siehe Bilder im Anhang. Bild eins ist vor dem Funktionsaufruf. Hier ist der Wert noch undefiniert. Bild zwei zeigt das Ergebnis in der Liste der überwachten Ausdrücke nach dem Funktionsaufruf und Bild drei die Deklaration des Interfaces.

Anhang 46590Anhang 46591Anhang 46592

Ich bin mir allerdings immer noch unsicher ob ich das Problem richtig verstanden habe. Vielleicht kann Günther das ja nochmal etwas genauer erklären. :-D

EDIT: Stört euch nicht an der Beschreibung im Interface. Die muss ich noch überarbeiten. Da fehlt noch einiges und es stimmen diverse Parts auch nicht mehr.

Der schöne Günther 2. Feb 2017 08:56

AW: Out-Parameter im Debugger
 
Das ist natürlich richtig wenn ich einen Aufruf im Code überwachen möchte - Wenn die zu füllenden Variablen gerade zufällig als lokale Variablen vorliegen.

Aber: Ich möchte im Debugger einfach eine Methode mit Ausgabeparametern aufrufen. Zu einer beliebigen Zeit anhalten und die Methode aufrufen können. Und ich habe gerade nicht zufällig lokale Variablen zum recyclen verfügbar.


Natürlich kann ich das Programm abbrechen, mir im Code irgendwelche globalen Variablen auf Vorrat deklarieren oder Wrapper schreiben. Aber was das jedes mal Zeit kostet, es könnte viel einfacher sein (wie z.B. von himitsu vorgeschlagen)...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.
Seite 1 von 2  1 2      

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