Me salvé por los pelos. Hace poco mas de un mes me preguntaron por mi proyecto y dije que lo tenía terminado. Tras unas pruebas me di cuenta algo tarde que mi proyecto tenía unas fallas, las cuales no tenía ni idea de a que se debían.
Eso fue hasta ayer por la noche. Había oído acerca de este programa antes así que me decidí a probarlo y a pasárselo a mi proyecto. Tras unos 10 posibles errores y uno crítico conseguí corregir un fallo de gestión de memoria que sin este programa me hubiese tirado aun otro par de semanas mas como mínimo. Valgrind es un programa que nos permite buscar fallos de gestión de memoria, buffer overflows, problemas con el heap, cualquier cosa. Eso si, es bastante tiquismiquis; os reportará mas de lo que debería ya que la mínima tontería saldrá en pantalla.
¿El fallo de memoria? Una chorrada como un castillo: una función que rompía una cadena de caracteres dado un separador, no reservaba espacio para el byte ‘\0′ (caracter nulo). Esto hacía que al principio no pasara nada, pero al momento que hacía de ejecutar el programa bastantes ciclos, escribía constantemente esos bytes fuera de la memoria reservada para ese buffer, y al momento en que tocase una de las otras cadenas con las que estaba trabajando, pues podía ocurrir de todo, ya os podéis imaginar.