![]() |
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:
Wie kann ich im Debugger den Wert von "output" sehen wenn "input" z.B. 42 ist?
procedure TSomeClass.someMethod(const input: Integer; out output: Integer);
Wäre es eine normale Funktion mit Rückgabewert ist das klar, das kann der Debugger. Aber so? :oops: |
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); |
AW: Out-Parameter im Debguger
Zitat:
|
AW: Out-Parameter im Debguger
Blöd wenn es nicht meine eigene Methode ist (z.B. aus einer externen Assembly) :-þ
|
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:
Parameter und einen
const
Delphi-Quellcode:
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.
out
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: |
AW: Out-Parameter im Debguger
Er meinte denke ich die Auswertung mit Strg + F7 oder die überwachten Ausdrücke. ;-)
|
AW: Out-Parameter im Debguger
Zitat:
|
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.
|
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. |
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 11:23 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