Valgrind

Valgrind Descripción de la imagen Valgrind logo.png.

Información
Creador Julian Seward
Última versión 3.16.1 (22 de junio de 2020)
Depositar git: //sourceware.org/git/valgrind.git
Escrito en VS
Sistema de explotación GNU / Linux , macOS , Solaris y Android
Tipo Herramienta de programación ( en )
Depurador de memoria ( en )
Licencia Licencia pública general GNU
Sitio web www.valgrind.org

Valgrind (pronunciado [vælɡrɪnd] , no [vælɡraɪnd] ) es una herramienta de programación gratuita para depurar , perfilar código y resaltar fugas de memoria .

Depurador

Originalmente fue diseñado para ser una versión gratuita de Purify  (In) bajo GNU / Linux , en arquitectura x86 . Hoy ha evolucionado, convirtiéndose en un marco genérico para la creación de herramientas dinámicas como “  checkers  ” y “perfiladores”. Tiene una excelente reputación y es ampliamente utilizado entre los programadores de GNU / Linux .

Valgrind es un software modular. Entre los módulos encontramos, por ejemplo, Memcheck, que permite eliminar las fallas en un programa a nivel de uso de memoria. Memcheck comprueba, entre otras cosas:

General

Valgrind es, en esencia, una máquina virtual que utiliza la compilación Just-In-Time (JIT), incluida la recopilación dinámica. Ninguna instrucción del programa analizado se ejecuta directamente en el procesador host. En cambio, Valgrind comienza traduciendo el programa a una Representación Intermedia (IR) más simple e independiente del procesador. En segundo lugar, una herramienta (ver más abajo) realiza una serie de transformaciones en el RI antes de que Valgrind vuelva a transformar este RI en código de máquina para que lo ejecute el procesador host. Aunque podría usar traducción dinámica (es decir, la máquina de destino y el host son de arquitecturas diferentes), Valgrind no lo hace. Valgrind recompila código binario para arquitecturas idénticas. Valgrind también proporciona puntos de entrada para GDB que permiten depurar un programa de destino que se ejecuta en Valgrind.

Estas transformaciones (así como el manejo de las herramientas) dan lugar a una importante pérdida de rendimiento; La velocidad de ejecución puede ser de 3 a 50 veces más lenta que sin Valgrind (todo depende de la herramienta pasada y las fuentes de medición).

Analizador de rendimiento (generador de perfiles)

El módulo Cachegrind se usa para resaltar fallas de caché que ralentizan la ejecución del programa.

El módulo Massif le permite rastrear el uso de la batería y determinar qué partes del programa lo están usando más.

El módulo CallGrind te permite contar el número de llamadas para todas las rutinas de un programa durante su ejecución, así como el tiempo dedicado a la rutina.

Módulos adicionales

Gracias a su arquitectura modular, se han escrito muchos módulos de terceros para satisfacer diversas necesidades.

También existen muchas otras herramientas externas que utilizan la máquina virtual valgrind para realizar diversas mediciones.

Notas y referencias

  1. Julian Seward , valgrind-3.16.1 está disponible  " ,25 de junio de 2020(consultado el 21 de enero de 2021 )
  2. (in) Preguntas frecuentes sobre Valgrind - 1.1. ¿Cómo se pronuncia "Valgrind"?  » , Valgrind.org.

Apéndices

Artículos relacionados

enlaces externos