Tengo un problema en mi proyecto. A veces la ejecución falla con el error "no se puede acceder a una ubicación de lectura/escritura xxxxx". Sé que es un error de corrupción de memoria. Pero, ¿cómo puedo rastrear ese error? Está fallando en la desasignación de memoria de una variable, si comento esa línea está procesando bien. Es decir, la memoria para esta variable ya se ha liberado. Anteriormente funcionaba bien, agregué código recientemente pero no cambié nada relacionado con esto. ¿Cómo puedo verificar la corrupción de memoria por esto?cómo verificar la corrupción de la memoria en C++
Respuesta
Con la información dada, tendrá que recorrer todo el código que ha agregado recientemente (si se trata de un problema reciente) y evaluar y verificar cada línea y ver si está pisoteando la memoria. memcopy
es un comando que puede causar este tipo de error si está asignando mucho para el tamaño del elemento que está copiando.
Asegúrese de que solo está eliminando sus objetos (punteros) una vez también.
Use valgrind si se encuentra en Linux, le mostrará exactamente lo que sucede si se pisa la memoria.
En Windows: see here.
No. Estoy en Windows. usando el editor de VS 2008 – Amaravathi
@Amaravathi Bueno, ¿por qué no lo dijiste en tu pregunta original? Hubiera ayudado en grandes cantidades. – Bojangles
Tener un problema de corrupción de memoria, excepto cuando ejecuto bajo valgrind, entonces nunca segfaults, por supuesto. –
Si está utilizando Windows, intente winDbg. Es el mejor y muy poderoso.
- 1. Corrupción de la memoria de depuración
- 2. De administración de memoria, corrupción de montón y C++
- 3. Corrupción de la corrupción de la información en un servidor de producción Linux
- 4. corrupción de montón detectado | C++
- 5. Cómo proteger la base de datos SQLite de la corrupción
- 6. Corrupción de la memoria en System.Move debido a un cambio en el modo 8087CW (png + stretchblt)
- 7. Corrupción galleta en la Red Móvil
- 8. Mejor detección de la corrupción SQLite
- 9. Corrupción de datos: ¿Dónde está la falla?
- 10. C++ Gestión de la memoria
- 11. Para recuperarse de la corrupción Subversion
- 12. C++ pérdida de memoria compartida, ¿cómo borrar la memoria compartida?
- 13. ¿WinDbg puede detectar la corrupción del montón de memoria debido a downcasting no válido?
- 14. ¿Cuál es la mejor manera de verificar si hay fugas de memoria en C++?
- 15. Cómo verificar la conectividad de red en Object-C
- 16. ¿Cómo puedo simular la corrupción del sistema de archivos ext3?
- 17. Asigne memoria estática en la memoria caché de la CPU en c/C++: ¿es posible?
- 18. ¿Cómo evitar quedarse sin memoria en la aplicación de uso de memoria alta? C/C++
- 19. doble liberación o corrupción de error en el programa c
- 20. Bloqueo debido a "corrupción de la pila detectada: cancelada"
- 21. Android: ¿cómo verificar cuánta memoria queda?
- 22. ¿Puedo forzar la limpieza de la memoria en C#?
- 23. Transmisión en C++ a la memoria
- 24. ¿C# limpia la memoria asignada C++?
- 25. ¿Cómo se implementa la memoria de solo lectura en C?
- 26. ¿Cómo funciona realmente la asignación automática de memoria en C++?
- 27. ¿Cómo se estructuran las estructuras en la memoria en C++?
- 28. Cómo verificar C# si la cuenta de usuario está activa
- 29. ¿Obtener señales SIGTRAP aleatorias (en MinGW-gdb) es un signo de corrupción de memoria?
- 30. ¿Cuál es la filosofía de administrar la memoria en C++?
¿Qué sistema operativo, compilador e IDE está utilizando? –
¿Qué plataforma? De cualquier manera, busca en Google o busca SO, esta pregunta ha sido solicitada a muerte un millón de veces. –
@Amaravathi Probablemente hay una eliminación doble en su programa. Con solo la descripción, no es posible decir dónde está el problema. Replica el problema a un programa pequeño y publica el código aquí. – Mahesh