corrupción de memoria en el software puede ser muy frustrante para depurar . Ayuda , sin embargo, para entender las causas de corrupción de memoria y cómo ir sobre él se fijan . La memoria puede ser corrompida por una saturación del buffer, usando la memoria sin inicializar , o tratando de leer o escribir en la memoria no válida. El programador tiene que encontrar el origen del problema y solucionarlo. Cosas que necesitará
código fuente del programa de descarga del compilador de código fuente
Mostrar más instrucciones
1
Reducir su búsqueda . Es un indicio de que usted está dirigiendo en la dirección correcta si no reproducir el error cuando una parte del código se evita que se ejecute . Si está utilizando Visual C + + , el depurador puede ayudarle a recorrer el código para encontrar donde sucede la corrupción.
2
Peine a través del código fuente. Una vez que haya reducido el problema a una sección más pequeña de código, debe pasar por ella y asegurarse de que toda la memoria lee y escribe en la memoria válido uso. Declaraciones depuración utilizando funciones como OutputDebugString para asegurarse de que los valores de la memoria son válidas . Compruebe para asegurarse de que límites de la matriz se cumplen y que la memoria se inicializa y no establece como nulo o eliminados antes de su uso.
3
arreglar el problema. Una vez que haya encontrado el problema , eliminarlo. Si se trata de una desafectación extraña de la memoria , basta con quitar esa línea de código . Asegúrese de que todas las matrices sólo se utilizan dentro de sus límites y que toda la memoria directamente visitada se inicializa antes de su uso.
4
evitar que el problema vuelva a ocurrir . A veces, el uso de un gestor de memoria de modo que todas las asignaciones y cancelaciones de asignación de memoria tienen una interfaz común puede ayudar a eliminar los errores de corrupción de memoria . Es posible que desee comprobar cada array leer ni escribir , por lo que puede garantizar que esté dentro de los límites.