Gewusst wie: Aktualisieren von Überwachungswerten
Beim Auswerten eines Ausdrucks im Debugger kann in der Spalte Wert eines von zwei Aktualisierungssymbolen angezeigt werden. Ein Aktualisierungssymbol ist ein Kreis, der zwei Pfeile enthält, die kreisförmig in entgegengesetzten Richtungen verlaufen. Das andere ist ein Kreis, der zwei Wellenlinien enthält, die Threads (Fäden) darstellen sollen.
Diese Symbole geben an, dass der Wert, der im Debugger angezeigte Wert nicht aktuell ist. Möglicherweise ist der Wert korrekt. Er ist jedoch in jedem Fall veraltet. Um diese Tatsache noch zu unterstreichen, wird der Wert außerdem grau formatiert angezeigt. Sie können die Auswertung erzwingen, indem Sie auf das Symbol klicken. Sie sollten jedoch die Gründe für die Anzeige des Symbols und die möglichen Folgen verstehen.
Wenn Sie auf das Symbol zeigen, wird eine QuickInfo mit Informationen darüber angezeigt, weshalb der Ausdruck nicht ausgewertet wurde.
Wenn die kreisförmig verlaufenden Pfeile angezeigt werden, wurde der Ausdruck aus einem der folgenden Gründe nicht ausgewertet:
Beim Auswerten des Ausdrucks ist ein Fehler aufgetreten. So kann beispielsweise ein Timeout aufgetreten sein, oder eine Variable kann außerhalb des gültigen Bereichs liegen.
Beim Auswerten des Ausdrucks ist das Auswerten einer Eigenschaft oder eines impliziten Funktionsaufrufs erforderlich. Das Auswerten von Eigenschaften und impliziten Funktionsaufrufen kann Nebeneffekte haben, die sich auf den Zustand des Programms auswirken. Da diese Effekte das Debuggen erschweren können, ist die automatische Auswertung von Eigenschaften und impliziten Funktionsaufrufen durch den Debugger häufig deaktiviert. Gelegentlich können Programmierer die automatische Auswertung versehentlich deaktivieren. Weitere Informationen zu Nebeneffekten finden Sie unter Nebeneffekte und Ausdrücke.
Wenn die zwei Threads angezeigt werden, wurde der Ausdruck wegen einer möglichen threadübergreifenden Abhängigkeit nicht ausgewertet. Bei einer threadübergreifenden Abhängigkeit müssen für die Auswertung des Codes andere Threads in der Anwendung vorübergehend ausgeführt werden. Wenn Sie sich im Unterbrechungsmodus befinden, sind alle Threads in der Anwendung typischerweise angehalten. Wenn die vorübergehende Ausführung anderer Threads zugelassen wird, kann dies unerwartete Auswirkungen auf den Zustand des Programms nach sich ziehen, und der Debugger ignoriert Ereignisse (wie z. B. Haltepunkte).
So aktualisieren Sie einen veralteten Wert
Führen Sie einen der folgenden Schritte aus:
Klicken Sie auf das Aktualisierungssymbol.
Wählen Sie den Wert aus, und drücken Sie dann die LEERTASTE.
Der Debugger versucht, den Ausdruck neu auszuwerten. Wenn das Aktualisierungssymbol angezeigt wurde, weil die automatische Auswertung von Eigenschaften und impliziten Nebeneffekten deaktiviert war, wird der Ausdruck jetzt ausgewertet.
So aktivieren oder deaktivieren Sie die automatische Eigenschaftenauswertung
Klicken Sie im Menü Extras auf Optionen.
Erweitern Sie im Dialogfeld Optionen den Knoten Debuggen, und klicken Sie auf Allgemein.
Wenn der Knoten Debuggen nicht angezeigt wird, klicken Sie auf Alle Einstellungen anzeigen.
Aktivieren oder deaktivieren Sie das Kontrollkästchen Eigenschaftenauswertung und andere implizite Funktionsaufrufe zulassen, und klicken Sie dann auf OK.