Respuesta

24

Si desea ver una determinada ubicación de memoria, debe indicarle al depurador el tipo de objeto que reside en esa ubicación. En lugar de solo 0x00aabbcc, use (SomeType*)0x00aabbcc. Una vez que el depurador conoce el tipo de ubicación de la memoria, lo tratará como un local tipeado y mostrará los valores correspondientes

+0

deseo VS no se trata de ser tan inteligente, y requieren ser conocido el tipo de datos para ver lo que está en la posición de memoria. Prefiero ser un poco tonto y solo mostrarme un volcado hexadecimal en la ubicación de la memoria: P –

+5

Bueno, ya tiene la ventana de memoria para eso. Simplemente arrastre y suelte una variable allí (o pegue una dirección hexadecimal) y le mostrará el estado de la memoria en bruto. – Neutrino

1

Consulte el sitio oficial answer, que funciona tan bien como las demás respuestas dadas a esta pregunta :). En esa página, la sección "Después de un puntero través de la memoria" dice:

En las aplicaciones de código nativo, puede utilizar el registro de nombres como vivo expresiones. Por ejemplo, puede usar el puntero de la pila para seguir la pila .

para seguir un puntero a través de la memoria

  1. En la ventana dememoria cuadro Dirección, escriba una expresión puntero. La variable del puntero debe estar en el alcance actual. Según el idioma, es posible que deba desreferenciarlo.

  2. Presione ENTER. Ahora, cuando usa un comando de ejecución como Paso, la dirección de la memoria que se muestra cambiará automáticamente a medida que cambie el puntero.

+0

"En el cuadro Dirección de la ventana de memoria, escriba una expresión de puntero." ¿Qué es exactamente una expresión de puntero? Nada que intente funciona. – Dan

+0

Una expresión de puntero podría ser algo como: '* (int *) (ebp + 0ch)'. Trata ebp + 0ch como un puntero a int y luego lo desreferencia. – Yuval

Cuestiones relacionadas