GALD A Memory Leakage Detection System
Acabo de hacer publica GALD v1.0 una utilidad, que personalmente me resulta bastante util, dedicada a la deteccion de perdidas de memoria y double-freed pointers.
La ventaja sobre otros metodos es que no se necesita reemplazar las llamadas C standar malloc(), calloc(), realloc() o free(), permitiendo asi tener un sistema de detection de memory leakages implemente incluyendo una cabecera C y recompilando la aplicacion, ni emular una CPU lo cual ralentiza mucho la aplicacion e incluye basura proveniente de todas las librerias utilizadas.
Una vez lanzado el ejecutable por la salida estandar de errores apareceran trazas cuando la memoria es reservada y liberada junto con el nombre del fichero de codigo y la correspondiente linea. Para facilitar su comprension he incluido un simple escript que presenta un resumen una vez la aplicacion ha terminado.
Para terminar un ejemplo de uso:
$ head -4 sample.c
#include <stdio.h>
#include <GALD/GALD.h>
$ gcc sample.c -I include/ -o sample
$ ./sample 2>&1 | ./process_output.sh
####### EXTRA FREED MEM #######
GALD FREE : 0x501230 @ sample.c:86
####### LEAKED MEM #######
GALD ALLOC : 0x501010 size: 66 @ sample.c:37
GALD ALLOC : 0x5010b0 size: 99 @ sample.c:43
GALD ALLOC : 0x501120 size: 165 @ sample.c:49
GALD ALLOC : 0x501060 size: 0 @ sample.c:58
GALD ALLOC : 0x501080 size: 1 @ sample.c:58
GALD ALLOC : 0x5011d0 size: 2 @ sample.c:58
GALD ALLOC : 0x5011f0 size: 3 @ sample.c:58
GALD ALLOC : 0x501210 size: 4 @ sample.c:58