Stelle finden wo sich Wert einer Variablen ändert

Wie kann ich zur Laufzeit (im Debug Mode die Stelle im Quelltext finden wo sich der Wert einer Variablen verändert oder einen bestimmten Wert annimmt ?

Mein Problem: eine Variable „vergisst“ während der Laufzeit ihren Wert den sie haben soll.

Vielen Dank

E. B.

Wie kann ich zur Laufzeit (im Debug Mode die Stelle im
Quelltext finden wo sich der Wert einer Variablen verändert
oder einen bestimmten Wert annimmt ?

Ich kenne Delphi nicht genau, aber ich denke dass es dort wie in fast allen Entwicklungsumgebungen „conditional breakpoints“ (deutscher Name unbekannt) gibt.

D.H. du erstellst so einen Breakpoint mit einer Bedinung z.b. „variable = 5“ und sobald der Fall eintritt, sollte der Debugger in deinem Code stehenbleiben.

Grüße
Bruno

Die Dinger heissen : bedingte Haltepunkte

Ich in meiner Wenigkeit benutze zwar Borland C++Builder, die Benutzeroberfläche ist aber weitgehend identisch. Also:

  • Zuerst das gesamte Projekt nach allen Stellen durchsuchen, wo die Variable geschrieben werden kann.
  • Dann an diesen Stellen einen bedingten Haltepunkt setzen, mit der Bedingung ‚MeineVariable 5‘

Sollte Deine gesuchte Variable alle möglichen Werte annehmen können, aber Dein Problem mit dem verlorenen Wert tritt erst nach einem bestimmten Ereignis auf, muss man etwas ausholen:

Wie oben verfahren, dazu aber jedem Haltepunkt einen Gruppenname zuordnen (in: Haltepunkt - Eigenschaften - Gruppe). Alle Haltepunkte haben den gleichen Gruppennamen. Gleichzeitig die Haltepunkte deaktivieren (rechte Maustaste - Aktiviert)

  • Dann an dem Haltepunkt, an dem das Ereignis auftritt und der (später verlorene) Wert geschrieben wird:
    – Haltepunkt aktivieren
    – die Gruppe aktivieren mit Haltepunkt - Eigenschaft - Weitere>> - Gruppe aktivieren
    – den Haken bei ‚Anhalten‘ entfernen’

Was passiert ?
Alle Haltepunkte sidn deaktiv. Kommt das Programm über die Stelle, an der der Wert beschrieben wird, werden alle Haltepunkte aktiviert, und das Programm stoppt in dem Moment, wenn die Variable das nächste Mal überschrieben wird.

Viel Erfolg wünscht
Hans

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Mühsam aber Danke, Bruno!

Ein schönes Weihnachtsfest
Eyck