OS X manque de linux strace
, mais il a dtrace
qui est censé être tellement mieux.
Cependant, je manque de la capacité à faire simple le suivi sur les commandes individuelles. Par exemple, sur linux, je peux écrire strace -f gcc hello.c
de caputre tous les appels système, ce qui me donne la liste de tous les fichiers requis par le compilateur pour compiler mon programme (l'excellent memoize script est construit sur ce truc)
Je tiens à port memoize sur le mac, j'ai donc besoin d'une sorte d' strace
. Ce que j'ai réellement besoin est la liste de fichiers gcc
lectures et écritures dans, donc ce que j'ai besoin est de plus d'un truss
. Bien sûr je peux dire dtruss -f gcc hello.c
et d'obtenir un peu de la même fonctionnalité, mais alors le compilateur est exécuté avec des privilèges root, ce qui n'est évidemment pas souhaitable (en dehors de l'énorme risque de sécurité, un problème est que l' a.out
le fichier est maintenant détenue par la racine :-)
J'ai ensuite essayé dtruss -f sudo -u myusername gcc hello.c
, mais cela se sent un peu mal, et ne fonctionne pas de toute façon (je n'ai pas de a.out
le fichier à tout ce temps, ne sais pas pourquoi)
Toute cette longue histoire essaie de motiver ma question initiale: comment puis-je obtenir de l' dtrace
pour exécuter ma commande avec la normale de l'utilisateur des privilèges, tout comme strace
n'en linux ?
Edit: il semble que je ne suis pas le seul à se demander comment faire ceci: question #1204256 est à peu près la même que la mienne (et qui a le même sous-optimale sudo réponse :-)