Come rilevare se in esecuzione con valgrind nel make file o script di shell?
-
21-08-2019 - |
Domanda
ho bisogno di rilevare se il mio Makefile è in esecuzione con valgrind (indirettamente, utilizzando valgrind --trace-children = yes), io so come farlo da C, ma non ho trovato un modo per farlo da uno script,
Le risposte precedenti funziona solo su Linux. Per Mac OS X Sono un andando a grep per VALGRIND_STARTUP_PWD nell'ambiente, a meno che qualcuno ha un'idea migliore.
Soluzione
da una shell:
grep -q '/valgrind' /proc/$$/maps && echo "valgrindage"
Questo determina se le librerie valgrind precaricati sono presenti in indirizzo mappa del processo. Si tratta di ragionevolmente efficace, ma se vi capita di avere una libreria correlato non valgrind che condivide il moniker '/ valgrind' quindi si otterrà un falso positivo (improbabile).
[ho cambiato il modello grep da vg_preload a / Valgrind, come i test su Debian / Ubuntu ha rivelato che il nome della libreria è stato diverso, mentre un match directory di valgrind è più probabilità di successo.]