Detección y aislamiento de pérdidas 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.

La capacidad de asignar y desasignar memoria dinámicamente es una de las características más potentes de la programación en C/C++, pero también puede constituir uno de sus puntos débiles. Esto es especialmente cierto en las aplicaciones de C/C++, donde los problemas de tratamiento de la memoria constituyen los errores de programación más comunes.

Uno de los errores más sutiles y difíciles de detectar es el de la pérdida de memoria (la incapacidad de desasignar correctamente memoria asignada previamente). Una pequeña pérdida de memoria que ocurra sólo una vez puede pasar desapercibida, pero los programas que pierden grandes cantidades de memoria, o sufren pérdidas progresivas, pueden mostrar síntomas que van desde un mal rendimiento (que decrece gradualmente) hasta el agotamiento completo de la memoria. Y, lo que es peor, un programa con pérdidas de memoria puede consumir tanta memoria que origine un error en otro programa y deje al usuario sin saber dónde reside realmente el problema. Además, incluso las pérdidas de memoria aparentemente inocuas pueden ser síntomas de otros problemas.

Afortunadamente, el depurador de Visual Studio y la biblioteca en tiempo de ejecución de C (CRT) proporcionan medios efectivos para detectar e identificar pérdidas de memoria. Para entender cómo se detectan las pérdidas de memoria mediante los servicios de depuración de CRT, lea los siguientes temas:

MFC proporciona su propio conjunto de servicios para detectar pérdidas de memoria en programas MFC. Para obtener más información, vea Detectar pérdidas de memoria en MFC.

Vea también

Conceptos

Seguridad del depurador

Otros recursos

Depuración de código nativo