Представьте, что у вас есть класс с именем A со следующим объявлением.
class A
{
public:
A();
private:
int m_value;
};
Вы хотите, чтобы программа остановилась, когда кто-то изменил значение «m_value».
Перейти к определению класса и поставить точку останова в конструкторе A.
A::A()
{
... // set breakpoint here
}
Как только мы остановили программу:
Отладка -> Новая точка останова -> Новая точка останова данных ...
Адрес: & (this-> m_value)
байтов: 4 (потому что int имеет 4 байта)
Теперь мы можем возобновить программу. Отладчик остановится при изменении значения.
Вы можете сделать то же самое с унаследованными классами или составными классами.
class B
{
private:
A m_a;
};
Адрес: & (this-> m_a.m_value)
Если вы не знаете количество байтов переменной, которую вы хотите проверить, вы можете использовать оператор sizeof.
Например:
// to know the size of the word processor,
// if you want to inspect a pointer.
int wordTam = sizeof (void* );
Если вы посмотрите на «Стек вызовов», вы увидите функцию, которая изменила значение переменной.