Visual Studio no puede mostrar el valor de 'esto' en modo de lanzamiento (con información de depuración)

Pregunta original

¿Por qué es este puntero 0 en una compilación de lanzamiento de VS c ++?

Al romper en una versión de lanzamiento de Visual Studio 2008 SP1 con las opciones / Zi (Compilador: Formato de información de depuración - Base de datos del programa) y / DEBUG (Enlace: Generar información de depuración, sí), ¿por qué los punteros 'this' siempre son 0x00000000?

EDITAR: Pregunta reformulada:

Mi pregunta original no estaba clara, lo siento. Cuando uso el depurador de Visual Studio 2008 para recorrer un programa, puedo ver todas las variables, excepto las variables miembro del objeto local. Esto probablemente se deba a que el depurador deriva esto del puntero this, pero VS siempre dice que es 0x00000000, por lo que no puede derivar las variables miembro del objeto actual (no conoce la posición de memoria del objeto)

Al cargar un megadump (como un minivolcado de Windows, pero que contiene todo el espacio de memoria del proceso), puedo ver todas mis variables locales (definidas en la función) y estructuras de árbol completas en el montón, incluso tengo punteros.

Por ejemplo: al romper en A :: foo () en modo Release

'esto' tendrá un valor de 0x00000000
'f_' mostrará basura

De alguna manera, esta información debe estar disponible para el proceso. ¿Es esta una característica que falta en VS2008? ¿Algún otro depurador que maneje esto correctamente?

class A
{
  void foo() { /*break here*/ }
  int f_;
};

Respuestas a la pregunta(8)

Su respuesta a la pregunta