Einzelnen Beitrag anzeigen

prognase

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

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
Miniaturansicht angehängter Grafiken
debug_finally_01.jpg   debug_finally_02.jpg   debug_finally_03.jpg   debug_finally_04.jpg   debug_finally_05.jpg  

  Mit Zitat antworten Zitat