Imagine que tiene una clase llamada A con la siguiente declaración.
class A
{
public:
A();
private:
int m_value;
};
Desea que el programa se detenga cuando alguien modifique el valor de "m_value".
Vaya a la definición de clase y ponga un punto de interrupción en el constructor de A.
A::A()
{
... // set breakpoint here
}
Una vez que detuvimos el programa:
Depuración -> Nuevo punto de interrupción -> Nuevo punto de interrupción de datos ...
Dirección: & (this-> m_value)
Recuento de bytes: 4 (porque int tiene 4 bytes)
Ahora, podemos reanudar el programa. El depurador se detendrá cuando se cambie el valor.
Puede hacer lo mismo con clases heredadas o clases compuestas.
class B
{
private:
A m_a;
};
Dirección: & (this-> m_a.m_value)
Si no conoce el número de bytes de la variable que desea inspeccionar, puede usar el operador sizeof.
Por ejemplo:
// to know the size of the word processor,
// if you want to inspect a pointer.
int wordTam = sizeof (void* );
Si observa la "Pila de llamadas", puede ver la función que cambió el valor de la variable.