Come rilevare se in esecuzione con valgrind nel make file o script di shell?

StackOverflow https://stackoverflow.com/questions/360970

  •  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.

È stato utile?

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.]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top