Red de conocimiento informático - Material del sitio web - Cómo localizar y analizar pérdidas de memoria en Linux

Cómo localizar y analizar pérdidas de memoria en Linux

1. ¿Leer el código fuente y analizar el uso de la memoria dinámica?

Debido a que nunca antes había hecho un problema similar (soy solo un novato y me desprecian...), pensé en leer el código yo mismo y encontrar los segmentos de código que involucran el uso de memoria dinámica. Sin embargo, todavía sigo y analizo a través del código fuente, principalmente rastreando la memoria asignada dinámicamente (como la memoria asignada por la función malloc), algunos descriptores de archivos, etc., y analizando si la lógica del programa ha liberado o abierto manualmente el código fuente. memoria asignada. El descriptor de archivo no se ha cerrado, etc. Analizar estos códigos poco a poco es, por supuesto, también un proceso de familiarización y comprensión del código.

2. Utilice la herramienta de detección de memoria memwatch para el análisis de la memoria del programa

Memwatch es una herramienta de detección de memoria en lenguaje C. memwatch reemplaza todas las funciones de asignación de memoria definidas en ANSI C en su programa con sus propias funciones definidas. La función de asignación de memoria de memwatch contiene toda la información de registro de asignación. A menos que se defina MEMWATCH, la función Memwatch no está activada de forma predeterminada y no se realiza un seguimiento del uso de memoria relacionado en su código. Memwatch normalmente escribe datos en el archivo memwatch.log, que también se puede redirigir.