Wyobraź sobie, że masz klasę o nazwie A z następującą deklaracją.
class A
{
public:
A();
private:
int m_value;
};
Chcesz, aby program zatrzymał się, gdy ktoś zmodyfikuje wartość „m_value”.
Przejdź do definicji klasy i umieść punkt przerwania w konstruktorze A.
A::A()
{
... // set breakpoint here
}
Po zatrzymaniu programu:
Debugowanie -> Nowy punkt przerwania -> Nowy punkt przerwania danych ...
Adres: & (this-> m_value) Liczba
bajtów: 4 (Ponieważ int ma 4 bajty)
Teraz możemy wznowić program. Debuger zatrzyma się po zmianie wartości.
Możesz zrobić to samo z klasami dziedziczonymi lub klasami złożonymi.
class B
{
private:
A m_a;
};
Adres: i (this-> m_a.m_value)
Jeśli nie znasz liczby bajtów zmiennej, którą chcesz sprawdzić, możesz użyć operatora sizeof.
Na przykład:
// to know the size of the word processor,
// if you want to inspect a pointer.
int wordTam = sizeof (void* );
Jeśli spojrzysz na „stos wywołań”, zobaczysz funkcję, która zmieniła wartość zmiennej.