2010-03-22 23 views
7

hola soy nuevo en valgrind. Sé cómo ejecutar valgrind en archivos ejecutables desde la línea de comandos. Pero ¿cómo se ejecuta valgrind en procesos de servidor como apache/myqld/traffic server, etc.valgrind en el proceso del servidor

Quiero ejecutar valgrind en el servidor de tráfico (http://incubator.apache.org/projects/trafficserver.html) para detectar algunas pérdidas de memoria que tienen lugar en el complemento que he escrito.

¿Alguna sugerencia?

gracias, Pigol

Respuesta

5

Tienes que iniciar el servidor bajo el control de Valgrind. Simplemente tome el comando de inicio normal del servidor y anteponga el valgrind.

Valgrind se conectará a cada proceso que genere su proceso principal de "servidor". Cuando cada hilo o proceso finaliza, Valgrind generará su análisis, por lo que recomendaría conectarlo a un archivo (no estoy seguro si sale en stderr o stdout).

Si su comando de inicio habitual es /usr/local/mysql/bin/mysqld, inicie el servidor en cambio con valgrind /usr/local/mysql/bin/mysqld.

Si normalmente inicia el servicio con una secuencia de comandos (como /etc/init.d/mysql start), probablemente deba buscar en el script el comando real que ejecuta la secuencia de comandos y ejecutarlo en lugar del script.

No olvide pasar la opción --leak-check=full para valgrind para obtener el informe de pérdida de memoria.

Cuestiones relacionadas