stringtranslate.com

Depurador de memoria

Un depurador de memoria es un depurador que busca problemas de memoria de software, como fugas de memoria y desbordamientos de búfer . Estos se deben a errores relacionados con la asignación y desasignación de memoria dinámica . Los programas escritos en lenguajes que tienen recolección de basura , como el código administrado , también pueden necesitar depuradores de memoria, por ejemplo, para fugas de memoria debido a referencias "vivas" en colecciones.

Descripción general

Los depuradores de memoria funcionan monitoreando el acceso a la memoria, las asignaciones y la desasignación de memoria. Muchos depuradores de memoria requieren que las aplicaciones se recompilen con bibliotecas especiales de asignación de memoria dinámica, cuyas API son en su mayoría compatibles con las bibliotecas de asignación de memoria dinámica convencionales, o que utilicen enlaces dinámicos. Electric Fence es un depurador de este tipo que depura la asignación de memoria con malloc . Algunos depuradores de memoria (por ejemplo, Valgrind ) funcionan ejecutando el ejecutable en un entorno similar a una máquina virtual, monitoreando el acceso a la memoria, la asignación y la desasignación de modo que no se requiera una recompilación con bibliotecas especiales de asignación de memoria.

Detectar problemas de memoria, como fugas, puede llevar mucho tiempo, ya que pueden no manifestarse excepto en determinadas circunstancias. El uso de una herramienta para detectar el uso indebido de la memoria hace que el proceso sea mucho más rápido y sencillo. [1]

Como el uso anormalmente alto de la memoria puede ser un factor que contribuye al envejecimiento del software , los depuradores de memoria pueden ayudar a los programadores a evitar anomalías del software que agotarían la memoria del sistema informático, garantizando así una alta confiabilidad del software incluso durante tiempos de ejecución prolongados .

Comparación con el analizador estático

Algunas herramientas de análisis estático también pueden ayudar a encontrar errores de memoria. Los depuradores de memoria funcionan como parte de una aplicación mientras se está ejecutando , mientras que el análisis de código estático se realiza analizando el código sin ejecutarlo. Estas diferentes técnicas normalmente encontrarán diferentes instancias de problemas y el uso de ambas juntas produce el mejor resultado. [2]

Lista de herramientas de depuración de memoria

Esta es una lista de herramientas útiles para la depuración de memoria. Un generador de perfiles se puede utilizar junto con un depurador de memoria.

Véase también

Referencias

  1. ^ "Revisión: 5 depuradores de memoria para codificación en Linux". 20 de noviembre de 2015. Consultado el 24 de agosto de 2017 .
  2. ^ "Análisis dinámico vs. análisis estático" . Consultado el 24 de agosto de 2017 .
  3. ^ "Código administrado - AQtime Pro | SmartBear". Archivado desde el original el 19 de septiembre de 2013. Consultado el 14 de enero de 2013 .
  4. ^ ab "Manual del usuario del detector invariante Daikon".
  5. ^ "Manual del usuario del detector invariante Daikon".

Enlaces externos