Cómo averiguar si los punteros dañan una dirección de memoria
Actualización: noviembre 2007
Este tema es aplicable a:
Edición |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
Sólo para código nativo |
|||
Standard |
Sólo para código nativo |
|||
Pro y Team |
Sólo para código nativo |
Leyenda de la tabla:
Se aplica |
|
No procede |
|
Comando o comandos ocultos de manera predeterminada. |
Descripción del problema
Parece que uno de los punteros está dañando la memoria en la dirección 0x00408000. ¿Cómo se puede averiguar lo que está ocurriendo allí?
Solución
Compruebe si el montón está dañado
- La mayoría de los daños en la memoria se deben en realidad a que el montón está dañado. Pruebe a usar la utilidad de identificadores globales (gflags.exe) o pageheap.exe. Vea https://support.microsoft.com/default.aspx?scid=kb;es-es;286470.
Para averiguar dónde se ha modificado la dirección de la memoria
Establezca un punto de interrupción de datos en 0x00408000. Para obtener más información, vea Cómo: Establecer un punto de interrupción de datos (Sólo nativo).
Cuando alcance el punto de interrupción, utilice la ventana Memoria para ver el contenido de la memoria a partir de la dirección 0x00408000. Para obtener más información, vea Memoria (Ventana).
Vea también
Conceptos
Preguntas más frecuentes sobre la depuración de código nativo