Es ist besser (wenn möglich), einen Speicherüberwachungspunkt zu verwenden als einen bedingten Haltepunkt. Ein bedingter Haltepunkt muss (wie bereits erwähnt) jedes Mal, wenn der Ausführungszeiger diesen Punkt überschreitet, zusätzlichen Code ausführen, um festzustellen, ob er abbricht oder nicht - das kostet natürlich zusätzliche Zeit. Ein Speicher-Watchpoint eines bestimmten Typs kann bestimmte spezielle Hardware-Register verwenden - es gibt eine Grenze, wie viele Watchpoints Sie setzen können, die beschleunigt werden können, aber wenn Sie sie verwenden können, gibt es fast keine Geschwindigkeitseinbußen.
Mit dem Haltepunktfenster wird ein Speicher-Watchpoint gesetzt. Sie setzen ihn nicht auf eine Codezeile, sondern auf eine Adresse im Speicher. Daraus ergibt sich die offensichtliche Einschränkung, dass er nur für Dinge funktioniert, deren Adresse Sie tatsächlich übernehmen können, wie z.B. globale Variablen und dynamisch zugewiesene Speicherbereiche (mit new
usw.). Sie sind in der Menge des Speichers, den Sie beobachten dürfen, begrenzt (je nach CPU bekommen Sie wahrscheinlich mehr oder weniger Spezialregister zugewiesen).
Ich sitze gerade nicht vor VS, aber grob gesagt, klicken Sie mit der rechten Maustaste in das Haltepunktfenster und wählen Sie so etwas wie "neuer Datenhaltepunkt". Sie geben dann die Adresse des Speichers und die Größe in Bytes ein. Wann immer sich der Wert ändert, wird Ihr Haltepunkt ausgelöst. Dies ist besonders nützlich, um Probleme mit beschädigtem Speicher herauszufinden.