AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Hat schon mal jemand mit DateTime-Werten debuggt?
Thema durchsuchen
Ansicht
Themen-Optionen

Hat schon mal jemand mit DateTime-Werten debuggt?

Ein Thema von sir-archimedes · begonnen am 7. Jun 2006 · letzter Beitrag vom 7. Jun 2006
Antwort Antwort
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#1

Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 13:40
Au mann, ich habe gerade die frustrierendste Erfahrung überhaupt mit Delphi gemacht...

Ich arbeite seit längerem fast ausschließlich mit Visual Studio/C# - musste jedoch gerade an ein älteres Projekt, das ich mit Delphi geschrieben habe, heran. Dort habe ich versucht einen Fehler zu finden, wobei die Variablen, die ich mir ansehen wollte, DateTime-Variablen waren. Diese wurde als Float-Werte dargestellt. Ich dachte, kein Problem - wandele ich sie mir via DateTimeToStr/DateToStr in lesbare Strings um. Das jedoch ging nicht, da der Linker diese Methoden wegoptimiert hatte. Auch ein ausschalten der Optimierung, brachte nichts - damit konnte ich dann jedes Mal diese Kommazahlen in Datumswerte von Hand umrechnen...

Falls mir das noch einmal bevorsteht: Hatte ich da nur etwas falsch eingestellt?

Gruß,
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 13:43
wie du schon sagtest ist die Optimierung schuld. Binde einfach an einer beliebigen Stelle die Funktion ein damit diese nicht weg optimiert wird. (zum beispiel im Create: DateToStr(now()) )
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#3

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 13:46
Die Float-Darstellung wöhlt der Debugger, wenn auch nur der leiseste Verdacht besteht, das diese Variable evtl. doch kein DateTime ist. Dies geschieht z.b.: wenn Du einen Tag dazuaddierst (MyDateTime:=MyDateTime+1). Wenn Du immer strikt mit TDateTime arbeitest, sollte der ToolTip auch eine richtige Stringdarstellung wählen.
Untersuch doch mal deinen Code nach solchen Stellen. Etwa auch eine zwischenzeitliche Speicherung in nem double.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 13:54
Jepp, ich rechne mit den Werten. Ich finde Delphis Verhalten trotzdem furchtbar. Auch habe ich eigentlich keine Lust, Methoden einzubinden, nur damit sie beim Debuggen aufrufbar sind. Ich bin da halt mittlerweile etwas verwöhnt, von C#, da dort DateTime einfach als Objekt angesehen wird und man damit auch beim Debuggen auf alle Methoden/Properties zugreifen kann.

Aber trotzdem danke für die Tipps - werde ich ausprobieren, sobald ich das nächste Mal an dem Projekt arbeite
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 13:56
wozu gibt es in delphi das schöne "Add Watch" ?

und dort einfach DateTimeToStr(Value) oder FormatDateTime('dd.mm.yyyy hh:mm', Value) eingeben (und das Häkchen bei "Allow Function Call" nicht vergessen)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 14:02
Hast du DateTimeToStr/DateToStr überhaupt im Programm verwendet?
Denn ob der Code dafür im Programm ist, hängt davon ab, ob er benötigt wird und nicht von der Optimierung.

Ob die Variable überhaupt lesbar ist, hängt sehr wohl von der Optimierung ab, denn wenn das Programm den Speicherplatz, wo der TDateTime-Wert stand schon freigegeben, oder für was anderes verwendet wurde/wird, dann kann man natürlich nichts mahr lesen.


In Werte-Überwachen (oder so), dann einfach nur DateToStr(VarName) eintragen und das Häckchen bei "Funktionsaufruf erlauben" reinmachen.
Falls DateTimeToStr/DateToStr nicht im Programm verwendet wurde, dann einfach irgendwo diese Funktionen wärend der Testphase einbauen, denn die Funktionen werden halt nur im Programm ausgeführt (der Debugger ruft die dann halt dort auf) und dafür müssen sie halt auch irgendwo im Programm drinstehen.

[add]
ich wünschte mir 'ne RedBox und daß ich etwas schneller schreiben täte, oder hal nicht andere Dinge nebenher mache
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Hat schon mal jemand mit DateTime-Werten debuggt?

  Alt 7. Jun 2006, 14:09
Wie gesagt, habe ich DateToStr/DateTimeToStr gar nicht verwendet im Programm. Ich habe nur solche Werte verarbeiten müssen und brauchte keine String-Darstellung davon.

Wenn ich die entsprechenden Funktionen einbinde, dann klappts auch beim Debuggen. Ich finde es trotzdem unschön :-/ Ehrlich gesagt möchte ich beim Debuggen nicht darüber nachdenken müssen, welche Methoden vom Linker im Programm vorhanden sind und welche nicht. Aber gut - ich weiß jetzt ja, woran es lag.

Danke euch allen!
  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 21:07 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