Équivalent de strace -feopen <commande> sur mac OS X

132

Ceci est utile pour le débogage (donc lié à la programmation). Sous Linux, nous pouvons utiliser la commande

strace -feopen python myfile.py

pour déterminer quels modules Python et objets partagés sont chargés. Existe-t-il un one-liner équivalent sur macOS X?

Setjmp
la source

Réponses:

181

Je suppose que vous vouliez dire strace -fetrace=open?

dtruss -f -t ouvre python myfile.py
éphémère
la source
Salut éphémient, je viens de tester votre version de strace (avec -fetrace = open) et il a donné exactement le même résultat que mon exemple. J'ai hâte de tester votre commande dtruss sous peu. Merci pour la réponse rapide!
Setjmp
2
D'une manière ou d'une autre, aujourd'hui, sudo dtruss ne fonctionne pas pour moi. C'est comme si Python n'était pas du tout exécuté!
Dima Tisnek
2
@qarma sudo-ing back again pourrait résoudre votre problème: serverfault.com/questions/215510/…
ErikR
27
dtrussnécessite des privilèges root, mais vous ne voudrez peut-être pas exécuter la commande que vous souhaitez tracer en tant que root. Considérezsudo dtruss -f -t open sudo -u $USER python myfile.py
un nerd payé
7
Obtenir une erreur avec $ sudo dtruss -f -t open sudo -u $USER python: `dtrace: la protection de l'intégrité du système est activée, certaines fonctionnalités ne seront pas disponibles` et ensuitedtrace: failed to execute sudo: dtrace cannot control executables signed with restricted entitlements
bleu le