no sé de una bala mágica, pero puedo eche un vistazo a valgrind/valgrind.h, tiene algunas macros útiles para hacer que las cosas valen la pena y alterar su comportamiento vior si se ejecuta bajo Valgrind.
Por ejemplo
#ifndef HAVE_VALGRIND_VALGRIND_H
#define RUNNING_ON_VALGRIND 0
#else
#include <valgrind/valgrind.h>
#endif
if (RUNNING_ON_VALGRIND) {
printf("Hello, this is Valgrind instance %d\n", RUNNING_ON_VALGRIND);
/* set debug output annoyingly high */
/* exit after one request */
}
También puede encerrar todo ese lío con NDEBUG
para mantenerlo fuera de la producción se basa.
Eso debería evitar que tenga que juguetear con el servidor cada vez que depure, simplemente 'lo hará' si se detecta Valgrind. RUNNING_ON_VALGRIND se expandirá a la instancia valgrind, o permanecerá 0 si no es aplicable.
Para el resto (y me imagino que está recibiendo un montón de ruido, probablemente comenzando con invalid read of size xx
), puede aplicar sistemáticamente supresiones. Si publica algo de la salida, podría ser más fácil hacer sugerencias para las supresiones que puede pegar en un archivo.
Por cierto, la lista de correo del usuario Valgrind es extremadamente útil y muy tolerante. También puede publicar su ruido más molesto e irrelevante allí, obtendrá respuestas con la forma de suprimirlo bastante rápido.
Si todo lo que quiere es un resumen de las fugas y los puntos de entrada que las condujeron, no debería ser demasiado difícil cerrar casi todo lo demás.
He agregado la salida valgrind. Hay muchas cosas, algunas de las cuales son de mi módulo. –