AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Warum mag mir der Debugger so selten beim Auswerten helfen?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum mag mir der Debugger so selten beim Auswerten helfen?

Ein Thema von Der schöne Günther · begonnen am 7. Sep 2013 · letzter Beitrag vom 8. Sep 2013
Antwort Antwort
Der schöne Günther

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

Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 7. Sep 2013, 22:35
XE4. Folgendes:

Einfache PODs wie Integer oder sonstwas auf dem Stack auswerten, da kann der Delphi-Debugger nur müde lächeln. Allerdings bekomme ich etwas aufwändigeren Klassen oft nur noch ein () zurück. Im Beispiel-Bild ist es der Sender -Parameter eines VCL-Eventhandlers, allerdings habe ich oft das mit allem möglichem. Eine Logik dahinter habe ich bislang nicht feststellen können. Wer kann mir weiterhelfen?

Auch hängt sich der kleine Fragezeichen-Button zum Abfragen einer Property gerne auf: Er rastet ein, danach passiert nichts mehr. Ein Ergebnis bekomme ich nie.
Miniaturansicht angehängter Grafiken
debugger-sender.png  
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 7. Sep 2013, 23:25
Sender ist erst einmal nur ein TObject, da ist normalerweise nichts interessantes drin, bzw. genauer gesagt keine published Eigenschaften. Wenn du z.B. TButton(Sender) schreibst, siehst du auch etwas.

Wenn du beim Auswerten z.B. Sender.ClassName eingibst, wird das auch ausgewertet.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#3

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 7. Sep 2013, 23:26
TObject hat auch keine Feldwerte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 8. Sep 2013, 09:38
Ich stehe auf dem Schlauch.
Klar ist die Referenz nur vom Typ TObject, allerdings hat doch schon jedes TObject so tolle Dinge wie class function ClassInfo: Pointer oder function ClassType: TClass : Zur Laufzeit kann ich doch dann problemlos schauen, von welchem Typ das Objekt tatsächlich ist.

Es ist ja nicht nur im Falle von TObject , es war grade das erste Beispiel, das ich zusammenzimmern konnte. Ich hoffe nur, irgendeine Compiler/Debuggereinstellung verdreht zu haben?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 8. Sep 2013, 12:53
Das wird aber nicht benutzt. Der Debugger wertet das Objekt mit dem Typ aus, als das es gerade gespeichert ist. Das macht in aller Regel auch Sinn, denn sonst sieht man vielleicht Sachen, die gar nicht interessant sind.

Wenn du z.B. ein Auto übergeben bekommst, das allgemein nur fahren kann und Türen hat, dann interessiert es dich weniger, dass es konkret vom Typ Mercedes ist und auch noch Chromleisten und Alufelgen hat... denn als Basistyp Auto kannst du mit denen ja ohnehin nichts anfangen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 8. Sep 2013, 14:49
Da widerspreche ich ja nicht, das macht ja wirklich Sinn. Es ist nur diese eine Sache: Ich möchte im Debugger nun einmal wissen, was es genau für ein Auto ist. Er müsste das können, denn mitten in meinem Anwendungscode kann ich das ja auch.

Weiterhin sind Dinge wie ClassType blöderweise Getter-Funktionen und keine Properties. Entweder bin ich zu dumm, oder der Debugger will nur beim Auswerten nur Properties anfassen, reine Methoden mag er nicht.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 8. Sep 2013, 16:14
Ich möchte im Debugger nun einmal wissen, was es genau für ein Auto ist. Er müsste das können, denn mitten in meinem Anwendungscode kann ich das ja auch.
Du kannst es ja auch jederzeit abfragen und nach einem Cast siehst du ja auch alles dieser Klasse, wie schon geschrieben. Den Automatismus gibt es so nicht, den könnte man höchstens in einem Addon einbauen.

Weiterhin sind Dinge wie ClassType blöderweise Getter-Funktionen und keine Properties. Entweder bin ich zu dumm, oder der Debugger will nur beim Auswerten nur Properties anfassen, reine Methoden mag er nicht.
Beim Überwachen kannst du in den Eigenschaften der Überwachung das Häkchen setzen um Nebeneffekte und Funktionsaufrufe zuzulassen.
Wenn etwas anderes nicht geht, liegt das in der Regel an der Optimierung, so dass der Bezeichner an der Stelle gerade nicht verfügbar ist.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Warum mag mir der Debugger so selten beim Auswerten helfen?

  Alt 8. Sep 2013, 16:36
Jetzt kriege ich es langsam auf die Reihe

Trotzdem finde ich es unverständlich, dass TObject nur eine Getter-Funktion hat, eine Property die der Debugger direkt ohne Gutes Zureden auswerten kann hätte sicher niemandem weh getan.

Eine Helper-Klasse mit entsprechender Property für TObject hat leider auch nichts bewirkt, aber es gibt sicher Schlimmeres.

Danke für die Hilfe.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 19:58 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