AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Out-Parameter im Debugger

Ein Thema von Der schöne Günther · begonnen am 1. Feb 2017 · letzter Beitrag vom 2. Feb 2017
Antwort Antwort
Seite 1 von 2  1 2      
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Out-Parameter im Debugger

  Alt 1. Feb 2017, 18:15
Ich mache heute auf den Tag genau seit vier Jahren Delphi
(fällt mir grade so auf)

Die Frage ist daher besonders peinlich.

Angenommen folgende Methode:
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?

Geändert von TBx ( 2. Feb 2017 um 09:15 Uhr) Grund: Titel korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#2

AW: Out-Parameter im Debguger

  Alt 1. Feb 2017, 18:19
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 SomeClass.SomeMethod(42, DebugResult) .

Es wäre natürlich zu geil, wenn das dann gleich richtig scriptfähig würde...
DebugResult := SomeClass.sSomeMethod(42);
oder
Delphi-Quellcode:
SomeClass.MachErstmalWas;
SomeClass.SomeMethod(42, DebugResult);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Feb 2017 um 18:26 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.446 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Out-Parameter im Debguger

  Alt 1. Feb 2017, 18:40
Angenommen folgende Methode:
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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Out-Parameter im Debguger

  Alt 1. Feb 2017, 18:42
Blöd wenn es nicht meine eigene Methode ist (z.B. aus einer externen Assembly) :-þ
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Out-Parameter im Debguger

  Alt 1. Feb 2017, 22:05
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 const Parameter und einen 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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Out-Parameter im Debguger

  Alt 1. Feb 2017, 22:53
Er meinte denke ich die Auswertung mit Strg + F7 oder die überwachten Ausdrücke.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Out-Parameter im Debguger

  Alt 2. Feb 2017, 00:46
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Out-Parameter im Debguger

  Alt 2. Feb 2017, 06:05
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Out-Parameter im Debugger

  Alt 2. Feb 2017, 09:20
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.

outparambefore.pngoutparamafter.pngoutparaminterface.png

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.

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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.160 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Out-Parameter im Debugger

  Alt 2. Feb 2017, 09:56
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)...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 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