AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein try..finally verursacht korrupte Variablen
Thema durchsuchen
Ansicht
Themen-Optionen

try..finally verursacht korrupte Variablen

Ein Thema von prognase · begonnen am 17. Jul 2019 · letzter Beitrag vom 18. Jul 2019
Antwort Antwort
prognase

Registriert seit: 30. Apr 2012
4 Beiträge
 
#1

AW: try..finally verursacht korrupte Variablen

  Alt 18. Jul 2019, 13:52
Warnungen kommen von meiner Seite beim Kompilieren keine im Projekt, da achte ich drauf. Bei 3rd-Party mit Source kommen ein paar Warnungen, aber keine kritischen: Variable deklariert und nicht genutzt, zugewiesener Wert wird nicht genutzt usw.

Der Tipp mit "ausserhalb vom Debugger sichtbar machen" war noch mal gut: habe es >nicht< geschafft, die falschen Werte in einer MessageBox zu zeigen... stimmte immer. Also noch mal im Debugger länger und genauer geschaut heute Mittag.

Ich vermute mal, dass der Debugger die Werte "nur" falsch anzeigt, irgendwie seine Zeiger in den Speicher verliert, aber: kurz vor Rücksprung stimmt scheinbar alles wieder. Angehängt ein paar Screenshots zum Nachverfolgen:
  1. Debug_FINALLY_01: Breakpoint bei Einstieg in den FINALLY-Block, die Variablen haben die richtigen Werte
  2. Debug_FINALLY_02: Sobald der erste Befehl ausgeführt wurde, stimmen die Variablen nicht mehr bzw. sind "inaccessible"
  3. Debug_FINALLY_03: Für closeLog wird FALSE angezeigt, somit sollte der ELSE-Zweig aufgerufen werden
  4. Debug_FINALLY_04: ... das passiert aber nicht, somit scheint closeLog den erwarteten Wert TRUE zu haben
  5. Debug_FINALLY_05: Und am Ende der Methode werden alle Werte plötzlich wieder korrekt dargestellt, auch FScanActiveCounter wurde korrekt von 2 auf 1 runtergezählt

Ich denke also mal, der Debugger spinnt an dieser Stelle einfach, hat da schon mal jemand was ähnliches erlebt?

Matthias
Angehängte Grafiken
Dateityp: jpg Debug_FINALLY_02.jpg (59,7 KB, 11x aufgerufen)
Dateityp: jpg Debug_FINALLY_03.jpg (59,0 KB, 9x aufgerufen)
Dateityp: jpg Debug_FINALLY_04.jpg (57,3 KB, 9x aufgerufen)
Dateityp: jpg Debug_FINALLY_05.jpg (67,8 KB, 11x aufgerufen)
Dateityp: jpg Debug_FINALLY_01.jpg (60,4 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: try..finally verursacht korrupte Variablen

  Alt 18. Jul 2019, 14:05
Hallo,
Zitat:
hat da schon mal jemand was ähnliches erlebt
Ja, habe ich.
Gerade wenn man eine Funktion als Watchpoint hat mit "Ausführen".
Sehr lustig, wenn beim Debuggen sogar Code ausgeführt wird ...
StringList.SaveToFile z.B.
Heiko
  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 14:51 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