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