Stellen Sie sich vor, Sie haben eine Klasse namens A mit der folgenden Deklaration.
class A
{
public:
A();
private:
int m_value;
};
Sie möchten, dass das Programm beendet wird, wenn jemand den Wert von "m_value" ändert.
Gehen Sie zur Klassendefinition und setzen Sie einen Haltepunkt in den Konstruktor von A.
A::A()
{
... // set breakpoint here
}
Sobald wir das Programm gestoppt haben:
Debug -> Neuer Haltepunkt -> Neuer Daten-Haltepunkt ...
Adresse: & (this-> m_value) Byteanzahl
: 4 (Weil int 4 Bytes hat)
Jetzt können wir das Programm fortsetzen. Der Debugger stoppt, wenn der Wert geändert wird.
Sie können dasselbe mit geerbten Klassen oder zusammengesetzten Klassen tun.
class B
{
private:
A m_a;
};
Adresse: & (this-> m_a.m_value)
Wenn Sie die Anzahl der Bytes der Variablen, die Sie untersuchen möchten, nicht kennen, können Sie den Operator sizeof verwenden.
Beispielsweise:
// to know the size of the word processor,
// if you want to inspect a pointer.
int wordTam = sizeof (void* );
Wenn Sie sich den "Aufrufstapel" ansehen, sehen Sie die Funktion, die den Wert der Variablen geändert hat.