Este es un problema perpetuo para las personas que desarrollan sistemas de archivos FUSE. This link may help (es literalmente demasiado para consolidar en una sola respuesta). La solución temporal implica un reemplazo justo a tiempo de fusermount y (dependiendo), algunas opciones adicionales para valgrind para evitar que rastree a los niños.
De hecho, si ejecuta mis FS bajo valgrind, se obtiene este resultado (sí, suficientes personas tenían ese problema que realmente detectado valgrind en el arranque y se muestra el enlace):
[email protected]:~ # valgrind xsfs /xs
==9479== Memcheck, a memory error detector.
==9479== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==9479== Using LibVEX rev 1884, a library for dynamic binary translation.
==9479== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==9479== Using valgrind-3.4.1, a dynamic binary instrumentation framework.
==9479== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==9479== For more details, rerun with: -v
==9479==
******** Valgrind has been detected by xsfs
******** If you have difficulties getting xsfs to work under Valgrind,
******** see the following thread:
******** http://www.nabble.com/valgrind-and-fuse-file-systems-td13112112.html
******** Sleeping for 5 seconds so this doesn't fly by ....
El lo más fácil es hacer todas las depuraciones en una máquina virtual desechable que se ejecuta como root, donde puede deshacerse del bit de setuid y terminar con eso. Asegúrese de probar su código para no tener ninguna fuga o violación, es fácil de probar cualquier código de biblioteca vinculado que no utilice fusible. Libere su construcción de 'valgrind-clean' y tenga en cuenta que lo ha hecho en la documentación.
Luego, tome algunos bits de valgrind/valgrind.h
para detectarlo, y muestre un mensaje corto para los que siguen adelante y ejecútelo de todos modos. Los hacks para solucionarlo requieren cooperación de raíz, y francamente, son mucho más fáciles de hacer en una caja de arena también.
También es bastante fácil negarse a ejecutar en valgrind con el bit de configuración activado, mostrando un mensaje útil para que las personas lo desactiven si realmente quieren hacerlo.
A veces, eso no es posible :) –
Esto ocurre incluso cuando las cosas eran ejecutar como usuario root :) La mejor manera es cambiar las permanentes para eliminar "s", y ejecutar –